From b17f6041b69d9dc703d56105f8e2bd1534aa9745 Mon Sep 17 00:00:00 2001 From: copyNinja1219 Date: Thu, 18 Mar 2021 14:42:39 +0530 Subject: [PATCH 01/10] added error page --- client/.eslintcache | 1 + client/package-lock.json | 15912 ++++++++++++++++ client/package.json | 1 + client/src/App.js | 22 +- client/src/components/error/Error.js | 21 + .../components/error/error-screen-desktop.png | Bin 0 -> 125827 bytes client/src/components/home/Home.js | 13 + client/src/history.js | 3 + design/Logo-design | 1 - node_modules/.bin/loose-envify | 15 + node_modules/.bin/loose-envify.cmd | 17 + node_modules/.bin/loose-envify.ps1 | 18 + node_modules/@babel/runtime/LICENSE | 22 + node_modules/@babel/runtime/README.md | 19 + .../@babel/runtime/helpers/AsyncGenerator.js | 101 + .../@babel/runtime/helpers/AwaitValue.js | 6 + .../helpers/applyDecoratedDescriptor.js | 31 + .../runtime/helpers/arrayLikeToArray.js | 12 + .../@babel/runtime/helpers/arrayWithHoles.js | 6 + .../runtime/helpers/arrayWithoutHoles.js | 8 + .../runtime/helpers/assertThisInitialized.js | 10 + .../runtime/helpers/asyncGeneratorDelegate.js | 59 + .../@babel/runtime/helpers/asyncIterator.js | 20 + .../runtime/helpers/asyncToGenerator.js | 38 + .../runtime/helpers/awaitAsyncGenerator.js | 8 + .../classApplyDescriptorDestructureSet.js | 23 + .../helpers/classApplyDescriptorGet.js | 10 + .../helpers/classApplyDescriptorSet.js | 14 + .../@babel/runtime/helpers/classCallCheck.js | 8 + .../helpers/classCheckPrivateStaticAccess.js | 8 + .../classCheckPrivateStaticFieldDescriptor.js | 8 + .../helpers/classExtractFieldDescriptor.js | 10 + .../runtime/helpers/classNameTDZError.js | 6 + .../classPrivateFieldDestructureSet.js | 11 + .../runtime/helpers/classPrivateFieldGet.js | 11 + .../helpers/classPrivateFieldLooseBase.js | 10 + .../helpers/classPrivateFieldLooseKey.js | 8 + .../runtime/helpers/classPrivateFieldSet.js | 12 + .../runtime/helpers/classPrivateMethodGet.js | 10 + .../runtime/helpers/classPrivateMethodSet.js | 6 + .../classStaticPrivateFieldDestructureSet.js | 14 + .../helpers/classStaticPrivateFieldSpecGet.js | 14 + .../helpers/classStaticPrivateFieldSpecSet.js | 15 + .../helpers/classStaticPrivateMethodGet.js | 9 + .../helpers/classStaticPrivateMethodSet.js | 6 + .../@babel/runtime/helpers/construct.js | 26 + .../@babel/runtime/helpers/createClass.js | 18 + .../helpers/createForOfIteratorHelper.js | 61 + .../helpers/createForOfIteratorHelperLoose.js | 29 + .../@babel/runtime/helpers/createSuper.js | 25 + .../@babel/runtime/helpers/decorate.js | 401 + .../@babel/runtime/helpers/defaults.js | 17 + .../helpers/defineEnumerableProperties.js | 25 + .../@babel/runtime/helpers/defineProperty.js | 17 + .../runtime/helpers/esm/AsyncGenerator.js | 97 + .../@babel/runtime/helpers/esm/AwaitValue.js | 3 + .../helpers/esm/applyDecoratedDescriptor.js | 28 + .../runtime/helpers/esm/arrayLikeToArray.js | 9 + .../runtime/helpers/esm/arrayWithHoles.js | 3 + .../runtime/helpers/esm/arrayWithoutHoles.js | 4 + .../helpers/esm/assertThisInitialized.js | 7 + .../helpers/esm/asyncGeneratorDelegate.js | 56 + .../runtime/helpers/esm/asyncIterator.js | 17 + .../runtime/helpers/esm/asyncToGenerator.js | 35 + .../helpers/esm/awaitAsyncGenerator.js | 4 + .../esm/classApplyDescriptorDestructureSet.js | 20 + .../helpers/esm/classApplyDescriptorGet.js | 7 + .../helpers/esm/classApplyDescriptorSet.js | 11 + .../runtime/helpers/esm/classCallCheck.js | 5 + .../esm/classCheckPrivateStaticAccess.js | 5 + .../classCheckPrivateStaticFieldDescriptor.js | 5 + .../esm/classExtractFieldDescriptor.js | 7 + .../runtime/helpers/esm/classNameTDZError.js | 3 + .../esm/classPrivateFieldDestructureSet.js | 6 + .../helpers/esm/classPrivateFieldGet.js | 6 + .../helpers/esm/classPrivateFieldLooseBase.js | 7 + .../helpers/esm/classPrivateFieldLooseKey.js | 4 + .../helpers/esm/classPrivateFieldSet.js | 7 + .../helpers/esm/classPrivateMethodGet.js | 7 + .../helpers/esm/classPrivateMethodSet.js | 3 + .../classStaticPrivateFieldDestructureSet.js | 8 + .../esm/classStaticPrivateFieldSpecGet.js | 8 + .../esm/classStaticPrivateFieldSpecSet.js | 9 + .../esm/classStaticPrivateMethodGet.js | 5 + .../esm/classStaticPrivateMethodSet.js | 3 + .../@babel/runtime/helpers/esm/construct.js | 18 + .../@babel/runtime/helpers/esm/createClass.js | 15 + .../helpers/esm/createForOfIteratorHelper.js | 57 + .../esm/createForOfIteratorHelperLoose.js | 25 + .../@babel/runtime/helpers/esm/createSuper.js | 19 + .../@babel/runtime/helpers/esm/decorate.js | 396 + .../@babel/runtime/helpers/esm/defaults.js | 14 + .../helpers/esm/defineEnumerableProperties.js | 22 + .../runtime/helpers/esm/defineProperty.js | 14 + .../@babel/runtime/helpers/esm/extends.js | 17 + .../@babel/runtime/helpers/esm/get.js | 20 + .../runtime/helpers/esm/getPrototypeOf.js | 6 + .../@babel/runtime/helpers/esm/inherits.js | 15 + .../runtime/helpers/esm/inheritsLoose.js | 6 + .../helpers/esm/initializerDefineProperty.js | 9 + .../helpers/esm/initializerWarningHelper.js | 3 + .../@babel/runtime/helpers/esm/instanceof.js | 7 + .../helpers/esm/interopRequireDefault.js | 5 + .../helpers/esm/interopRequireWildcard.js | 53 + .../runtime/helpers/esm/isNativeFunction.js | 3 + .../helpers/esm/isNativeReflectConstruct.js | 12 + .../runtime/helpers/esm/iterableToArray.js | 3 + .../helpers/esm/iterableToArrayLimit.js | 26 + .../helpers/esm/iterableToArrayLimitLoose.js | 12 + .../@babel/runtime/helpers/esm/jsx.js | 46 + .../runtime/helpers/esm/maybeArrayLike.js | 9 + .../runtime/helpers/esm/newArrowCheck.js | 5 + .../runtime/helpers/esm/nonIterableRest.js | 3 + .../runtime/helpers/esm/nonIterableSpread.js | 3 + .../helpers/esm/objectDestructuringEmpty.js | 3 + .../runtime/helpers/esm/objectSpread.js | 19 + .../runtime/helpers/esm/objectSpread2.js | 35 + .../helpers/esm/objectWithoutProperties.js | 19 + .../esm/objectWithoutPropertiesLoose.js | 14 + .../@babel/runtime/helpers/esm/package.json | 3 + .../helpers/esm/possibleConstructorReturn.js | 9 + .../runtime/helpers/esm/readOnlyError.js | 3 + .../@babel/runtime/helpers/esm/set.js | 51 + .../runtime/helpers/esm/setPrototypeOf.js | 8 + .../helpers/esm/skipFirstGeneratorNext.js | 7 + .../runtime/helpers/esm/slicedToArray.js | 7 + .../runtime/helpers/esm/slicedToArrayLoose.js | 7 + .../runtime/helpers/esm/superPropBase.js | 9 + .../helpers/esm/taggedTemplateLiteral.js | 11 + .../helpers/esm/taggedTemplateLiteralLoose.js | 8 + .../@babel/runtime/helpers/esm/tdz.js | 3 + .../@babel/runtime/helpers/esm/temporalRef.js | 5 + .../runtime/helpers/esm/temporalUndefined.js | 1 + .../@babel/runtime/helpers/esm/toArray.js | 7 + .../runtime/helpers/esm/toConsumableArray.js | 7 + .../@babel/runtime/helpers/esm/toPrimitive.js | 13 + .../runtime/helpers/esm/toPropertyKey.js | 6 + .../@babel/runtime/helpers/esm/typeof.js | 15 + .../helpers/esm/unsupportedIterableToArray.js | 9 + .../runtime/helpers/esm/wrapAsyncGenerator.js | 6 + .../runtime/helpers/esm/wrapNativeSuper.js | 37 + .../@babel/runtime/helpers/esm/wrapRegExp.js | 69 + .../runtime/helpers/esm/writeOnlyError.js | 3 + .../@babel/runtime/helpers/extends.js | 21 + node_modules/@babel/runtime/helpers/get.js | 27 + .../@babel/runtime/helpers/getPrototypeOf.js | 10 + .../@babel/runtime/helpers/inherits.js | 19 + .../@babel/runtime/helpers/inheritsLoose.js | 10 + .../helpers/initializerDefineProperty.js | 12 + .../helpers/initializerWarningHelper.js | 6 + .../@babel/runtime/helpers/instanceof.js | 10 + .../runtime/helpers/interopRequireDefault.js | 8 + .../runtime/helpers/interopRequireWildcard.js | 56 + .../runtime/helpers/isNativeFunction.js | 6 + .../helpers/isNativeReflectConstruct.js | 15 + .../@babel/runtime/helpers/iterableToArray.js | 6 + .../runtime/helpers/iterableToArrayLimit.js | 29 + .../helpers/iterableToArrayLimitLoose.js | 15 + node_modules/@babel/runtime/helpers/jsx.js | 50 + .../@babel/runtime/helpers/maybeArrayLike.js | 13 + .../@babel/runtime/helpers/newArrowCheck.js | 8 + .../@babel/runtime/helpers/nonIterableRest.js | 6 + .../runtime/helpers/nonIterableSpread.js | 6 + .../helpers/objectDestructuringEmpty.js | 6 + .../@babel/runtime/helpers/objectSpread.js | 23 + .../@babel/runtime/helpers/objectSpread2.js | 38 + .../helpers/objectWithoutProperties.js | 23 + .../helpers/objectWithoutPropertiesLoose.js | 17 + .../helpers/possibleConstructorReturn.js | 14 + .../@babel/runtime/helpers/readOnlyError.js | 6 + node_modules/@babel/runtime/helpers/set.js | 55 + .../@babel/runtime/helpers/setPrototypeOf.js | 12 + .../runtime/helpers/skipFirstGeneratorNext.js | 10 + .../@babel/runtime/helpers/slicedToArray.js | 14 + .../runtime/helpers/slicedToArrayLoose.js | 14 + .../@babel/runtime/helpers/superPropBase.js | 13 + .../runtime/helpers/taggedTemplateLiteral.js | 14 + .../helpers/taggedTemplateLiteralLoose.js | 11 + node_modules/@babel/runtime/helpers/tdz.js | 6 + .../@babel/runtime/helpers/temporalRef.js | 10 + .../runtime/helpers/temporalUndefined.js | 4 + .../@babel/runtime/helpers/toArray.js | 14 + .../runtime/helpers/toConsumableArray.js | 14 + .../@babel/runtime/helpers/toPrimitive.js | 17 + .../@babel/runtime/helpers/toPropertyKey.js | 11 + node_modules/@babel/runtime/helpers/typeof.js | 22 + .../helpers/unsupportedIterableToArray.js | 13 + .../runtime/helpers/wrapAsyncGenerator.js | 10 + .../@babel/runtime/helpers/wrapNativeSuper.js | 45 + .../@babel/runtime/helpers/wrapRegExp.js | 79 + .../@babel/runtime/helpers/writeOnlyError.js | 6 + node_modules/@babel/runtime/package.json | 853 + .../@babel/runtime/regenerator/index.js | 1 + node_modules/history/DOMUtils.js | 3 + node_modules/history/ExecutionEnvironment.js | 3 + node_modules/history/LICENSE | 21 + node_modules/history/LocationUtils.js | 3 + node_modules/history/PathUtils.js | 3 + node_modules/history/README.md | 38 + node_modules/history/cjs/history.js | 948 + node_modules/history/cjs/history.min.js | 1 + node_modules/history/createBrowserHistory.js | 3 + node_modules/history/createHashHistory.js | 3 + node_modules/history/createMemoryHistory.js | 3 + .../history/createTransitionManager.js | 3 + node_modules/history/es/DOMUtils.js | 7 + .../history/es/ExecutionEnvironment.js | 7 + node_modules/history/es/LocationUtils.js | 7 + node_modules/history/es/PathUtils.js | 7 + .../history/es/createBrowserHistory.js | 7 + node_modules/history/es/createHashHistory.js | 7 + .../history/es/createMemoryHistory.js | 7 + .../history/es/createTransitionManager.js | 7 + .../es/warnAboutDeprecatedESMImport.js | 35 + node_modules/history/esm/history.js | 919 + node_modules/history/index.js | 7 + node_modules/history/package.json | 117 + node_modules/history/umd/history.js | 1085 ++ node_modules/history/umd/history.min.js | 1 + .../history/warnAboutDeprecatedCJSRequire.js | 35 + .../hoist-non-react-statics/CHANGELOG.md | 37 + .../hoist-non-react-statics/LICENSE.md | 29 + .../hoist-non-react-statics/README.md | 55 + .../dist/hoist-non-react-statics.cjs.js | 103 + .../dist/hoist-non-react-statics.js | 449 + .../dist/hoist-non-react-statics.min.js | 1 + .../hoist-non-react-statics/package.json | 87 + .../hoist-non-react-statics/src/index.js | 104 + node_modules/isarray/README.md | 54 + node_modules/isarray/build/build.js | 209 + node_modules/isarray/component.json | 19 + node_modules/isarray/index.js | 3 + node_modules/isarray/package.json | 57 + node_modules/js-tokens/CHANGELOG.md | 151 + node_modules/js-tokens/LICENSE | 21 + node_modules/js-tokens/README.md | 240 + node_modules/js-tokens/index.js | 23 + node_modules/js-tokens/package.json | 64 + node_modules/loose-envify/LICENSE | 21 + node_modules/loose-envify/README.md | 45 + node_modules/loose-envify/cli.js | 16 + node_modules/loose-envify/custom.js | 4 + node_modules/loose-envify/index.js | 3 + node_modules/loose-envify/loose-envify.js | 36 + node_modules/loose-envify/package.json | 70 + node_modules/loose-envify/replace.js | 65 + .../mini-create-react-context/LICENSE | 21 + .../mini-create-react-context/README.md | 124 + .../dist/cjs/index.js | 167 + .../dist/cjs/index.min.js | 1 + .../dist/esm/index.js | 176 + .../mini-create-react-context/dist/index.d.ts | 24 + .../mini-create-react-context/package.json | 98 + node_modules/object-assign/index.js | 90 + node_modules/object-assign/license | 21 + node_modules/object-assign/package.json | 74 + node_modules/object-assign/readme.md | 61 + node_modules/path-to-regexp/History.md | 158 + node_modules/path-to-regexp/LICENSE | 21 + node_modules/path-to-regexp/Readme.md | 257 + node_modules/path-to-regexp/index.d.ts | 84 + node_modules/path-to-regexp/index.js | 426 + node_modules/path-to-regexp/package.json | 76 + node_modules/prop-types/CHANGELOG.md | 92 + node_modules/prop-types/LICENSE | 21 + node_modules/prop-types/README.md | 296 + node_modules/prop-types/checkPropTypes.js | 102 + node_modules/prop-types/factory.js | 19 + .../prop-types/factoryWithThrowingShims.js | 64 + .../prop-types/factoryWithTypeCheckers.js | 591 + node_modules/prop-types/index.js | 19 + .../prop-types/lib/ReactPropTypesSecret.js | 12 + node_modules/prop-types/package.json | 87 + node_modules/prop-types/prop-types.js | 1337 ++ node_modules/prop-types/prop-types.min.js | 1 + node_modules/react-is/LICENSE | 21 + node_modules/react-is/README.md | 104 + node_modules/react-is/build-info.json | 8 + .../react-is/cjs/react-is.development.js | 181 + .../react-is/cjs/react-is.production.min.js | 15 + node_modules/react-is/index.js | 7 + node_modules/react-is/package.json | 54 + .../react-is/umd/react-is.development.js | 181 + .../react-is/umd/react-is.production.min.js | 13 + .../react-router-dom/BrowserRouter.js | 3 + node_modules/react-router-dom/HashRouter.js | 3 + node_modules/react-router-dom/LICENSE | 21 + node_modules/react-router-dom/Link.js | 3 + node_modules/react-router-dom/MemoryRouter.js | 3 + node_modules/react-router-dom/NavLink.js | 3 + node_modules/react-router-dom/Prompt.js | 3 + node_modules/react-router-dom/README.md | 37 + node_modules/react-router-dom/Redirect.js | 3 + node_modules/react-router-dom/Route.js | 3 + node_modules/react-router-dom/Router.js | 3 + node_modules/react-router-dom/StaticRouter.js | 3 + node_modules/react-router-dom/Switch.js | 3 + .../react-router-dom/cjs/react-router-dom.js | 443 + .../cjs/react-router-dom.js.map | 1 + .../cjs/react-router-dom.min.js | 2 + .../cjs/react-router-dom.min.js.map | 1 + .../react-router-dom/es/BrowserRouter.js | 5 + .../react-router-dom/es/HashRouter.js | 5 + node_modules/react-router-dom/es/Link.js | 5 + .../react-router-dom/es/MemoryRouter.js | 5 + node_modules/react-router-dom/es/NavLink.js | 5 + node_modules/react-router-dom/es/Prompt.js | 5 + node_modules/react-router-dom/es/Redirect.js | 5 + node_modules/react-router-dom/es/Route.js | 5 + node_modules/react-router-dom/es/Router.js | 5 + .../react-router-dom/es/StaticRouter.js | 5 + node_modules/react-router-dom/es/Switch.js | 5 + .../react-router-dom/es/generatePath.js | 5 + node_modules/react-router-dom/es/matchPath.js | 5 + .../es/warnAboutDeprecatedESMImport.js | 34 + .../react-router-dom/es/withRouter.js | 5 + .../react-router-dom/esm/react-router-dom.js | 317 + .../esm/react-router-dom.js.map | 1 + node_modules/react-router-dom/generatePath.js | 3 + node_modules/react-router-dom/index.js | 7 + node_modules/react-router-dom/matchPath.js | 3 + .../react-router-dom/modules/BrowserRouter.js | 36 + .../react-router-dom/modules/HashRouter.js | 35 + node_modules/react-router-dom/modules/Link.js | 146 + .../react-router-dom/modules/NavLink.js | 125 + .../react-router-dom/modules/index.js | 21 + .../modules/utils/locationUtils.js | 10 + node_modules/react-router-dom/package.json | 101 + .../react-router-dom/umd/react-router-dom.js | 3969 ++++ .../umd/react-router-dom.js.map | 1 + .../umd/react-router-dom.min.js | 2 + .../umd/react-router-dom.min.js.map | 1 + .../warnAboutDeprecatedCJSRequire.js | 36 + node_modules/react-router-dom/withRouter.js | 3 + node_modules/react-router/LICENSE | 21 + node_modules/react-router/MemoryRouter.js | 3 + node_modules/react-router/Prompt.js | 3 + node_modules/react-router/README.md | 39 + node_modules/react-router/Redirect.js | 3 + node_modules/react-router/Route.js | 3 + node_modules/react-router/Router.js | 3 + node_modules/react-router/StaticRouter.js | 3 + node_modules/react-router/Switch.js | 3 + node_modules/react-router/cjs/react-router.js | 825 + .../react-router/cjs/react-router.js.map | 1 + .../react-router/cjs/react-router.min.js | 2 + .../react-router/cjs/react-router.min.js.map | 1 + node_modules/react-router/es/MemoryRouter.js | 5 + node_modules/react-router/es/Prompt.js | 5 + node_modules/react-router/es/Redirect.js | 5 + node_modules/react-router/es/Route.js | 5 + node_modules/react-router/es/Router.js | 5 + node_modules/react-router/es/StaticRouter.js | 5 + node_modules/react-router/es/Switch.js | 5 + node_modules/react-router/es/generatePath.js | 5 + node_modules/react-router/es/matchPath.js | 5 + .../es/warnAboutDeprecatedESMImport.js | 34 + node_modules/react-router/es/withRouter.js | 5 + node_modules/react-router/esm/react-router.js | 770 + .../react-router/esm/react-router.js.map | 1 + node_modules/react-router/generatePath.js | 3 + node_modules/react-router/index.js | 7 + node_modules/react-router/matchPath.js | 3 + .../react-router/modules/HistoryContext.js | 4 + .../react-router/modules/Lifecycle.js | 21 + .../react-router/modules/MemoryRouter.js | 37 + node_modules/react-router/modules/Prompt.js | 52 + node_modules/react-router/modules/Redirect.js | 72 + node_modules/react-router/modules/Route.js | 140 + node_modules/react-router/modules/Router.js | 88 + .../react-router/modules/RouterContext.js | 12 + .../react-router/modules/StaticRouter.js | 102 + node_modules/react-router/modules/Switch.js | 67 + .../react-router/modules/createNameContext.js | 11 + .../react-router/modules/generatePath.js | 27 + node_modules/react-router/modules/hooks.js | 56 + node_modules/react-router/modules/index.js | 39 + .../react-router/modules/matchPath.js | 67 + .../react-router/modules/withRouter.js | 51 + node_modules/react-router/package.json | 99 + node_modules/react-router/umd/react-router.js | 3075 +++ .../react-router/umd/react-router.js.map | 1 + .../react-router/umd/react-router.min.js | 2 + .../react-router/umd/react-router.min.js.map | 1 + .../warnAboutDeprecatedCJSRequire.js | 36 + node_modules/react-router/withRouter.js | 3 + node_modules/regenerator-runtime/LICENSE | 21 + node_modules/regenerator-runtime/README.md | 31 + node_modules/regenerator-runtime/package.json | 47 + node_modules/regenerator-runtime/path.js | 11 + node_modules/regenerator-runtime/runtime.js | 748 + node_modules/resolve-pathname/LICENSE | 21 + node_modules/resolve-pathname/README.md | 64 + .../resolve-pathname/cjs/resolve-pathname.js | 77 + .../cjs/resolve-pathname.min.js | 1 + .../resolve-pathname/esm/resolve-pathname.js | 75 + node_modules/resolve-pathname/index.js | 7 + node_modules/resolve-pathname/package.json | 71 + .../resolve-pathname/umd/resolve-pathname.js | 83 + .../umd/resolve-pathname.min.js | 1 + node_modules/tiny-invariant/LICENSE | 21 + node_modules/tiny-invariant/README.md | 97 + .../tiny-invariant/dist/tiny-invariant.cjs.js | 15 + .../tiny-invariant/dist/tiny-invariant.d.ts | 1 + .../tiny-invariant/dist/tiny-invariant.esm.js | 13 + .../tiny-invariant/dist/tiny-invariant.js | 20 + .../tiny-invariant/dist/tiny-invariant.min.js | 1 + node_modules/tiny-invariant/package.json | 85 + .../tiny-invariant/src/tiny-invariant.flow.js | 12 + .../tiny-invariant/src/tiny-invariant.ts | 25 + node_modules/tiny-warning/LICENSE | 21 + node_modules/tiny-warning/README.md | 68 + .../tiny-warning/dist/tiny-warning.cjs.js | 22 + .../dist/tiny-warning.cjs.js.flow | 3 + .../tiny-warning/dist/tiny-warning.esm.js | 20 + .../tiny-warning/dist/tiny-warning.js | 27 + .../tiny-warning/dist/tiny-warning.min.js | 1 + node_modules/tiny-warning/package.json | 85 + node_modules/tiny-warning/src/index.d.ts | 1 + node_modules/tiny-warning/src/index.js | 30 + node_modules/value-equal/LICENSE | 21 + node_modules/value-equal/README.md | 54 + node_modules/value-equal/cjs/value-equal.js | 38 + .../value-equal/cjs/value-equal.min.js | 1 + node_modules/value-equal/esm/value-equal.js | 36 + node_modules/value-equal/index.js | 7 + node_modules/value-equal/package.json | 71 + node_modules/value-equal/umd/value-equal.js | 44 + .../value-equal/umd/value-equal.min.js | 1 + package-lock.json | 146 + 430 files changed, 44436 insertions(+), 6 deletions(-) create mode 100644 client/.eslintcache create mode 100644 client/package-lock.json create mode 100644 client/src/components/error/Error.js create mode 100644 client/src/components/error/error-screen-desktop.png create mode 100644 client/src/components/home/Home.js create mode 100644 client/src/history.js delete mode 100644 design/Logo-design create mode 100644 node_modules/.bin/loose-envify create mode 100644 node_modules/.bin/loose-envify.cmd create mode 100644 node_modules/.bin/loose-envify.ps1 create mode 100644 node_modules/@babel/runtime/LICENSE create mode 100644 node_modules/@babel/runtime/README.md create mode 100644 node_modules/@babel/runtime/helpers/AsyncGenerator.js create mode 100644 node_modules/@babel/runtime/helpers/AwaitValue.js create mode 100644 node_modules/@babel/runtime/helpers/applyDecoratedDescriptor.js create mode 100644 node_modules/@babel/runtime/helpers/arrayLikeToArray.js create mode 100644 node_modules/@babel/runtime/helpers/arrayWithHoles.js create mode 100644 node_modules/@babel/runtime/helpers/arrayWithoutHoles.js create mode 100644 node_modules/@babel/runtime/helpers/assertThisInitialized.js create mode 100644 node_modules/@babel/runtime/helpers/asyncGeneratorDelegate.js create mode 100644 node_modules/@babel/runtime/helpers/asyncIterator.js create mode 100644 node_modules/@babel/runtime/helpers/asyncToGenerator.js create mode 100644 node_modules/@babel/runtime/helpers/awaitAsyncGenerator.js create mode 100644 node_modules/@babel/runtime/helpers/classApplyDescriptorDestructureSet.js create mode 100644 node_modules/@babel/runtime/helpers/classApplyDescriptorGet.js create mode 100644 node_modules/@babel/runtime/helpers/classApplyDescriptorSet.js create mode 100644 node_modules/@babel/runtime/helpers/classCallCheck.js create mode 100644 node_modules/@babel/runtime/helpers/classCheckPrivateStaticAccess.js create mode 100644 node_modules/@babel/runtime/helpers/classCheckPrivateStaticFieldDescriptor.js create mode 100644 node_modules/@babel/runtime/helpers/classExtractFieldDescriptor.js create mode 100644 node_modules/@babel/runtime/helpers/classNameTDZError.js create mode 100644 node_modules/@babel/runtime/helpers/classPrivateFieldDestructureSet.js create mode 100644 node_modules/@babel/runtime/helpers/classPrivateFieldGet.js create mode 100644 node_modules/@babel/runtime/helpers/classPrivateFieldLooseBase.js create mode 100644 node_modules/@babel/runtime/helpers/classPrivateFieldLooseKey.js create mode 100644 node_modules/@babel/runtime/helpers/classPrivateFieldSet.js create mode 100644 node_modules/@babel/runtime/helpers/classPrivateMethodGet.js create mode 100644 node_modules/@babel/runtime/helpers/classPrivateMethodSet.js create mode 100644 node_modules/@babel/runtime/helpers/classStaticPrivateFieldDestructureSet.js create mode 100644 node_modules/@babel/runtime/helpers/classStaticPrivateFieldSpecGet.js create mode 100644 node_modules/@babel/runtime/helpers/classStaticPrivateFieldSpecSet.js create mode 100644 node_modules/@babel/runtime/helpers/classStaticPrivateMethodGet.js create mode 100644 node_modules/@babel/runtime/helpers/classStaticPrivateMethodSet.js create mode 100644 node_modules/@babel/runtime/helpers/construct.js create mode 100644 node_modules/@babel/runtime/helpers/createClass.js create mode 100644 node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js create mode 100644 node_modules/@babel/runtime/helpers/createForOfIteratorHelperLoose.js create mode 100644 node_modules/@babel/runtime/helpers/createSuper.js create mode 100644 node_modules/@babel/runtime/helpers/decorate.js create mode 100644 node_modules/@babel/runtime/helpers/defaults.js create mode 100644 node_modules/@babel/runtime/helpers/defineEnumerableProperties.js create mode 100644 node_modules/@babel/runtime/helpers/defineProperty.js create mode 100644 node_modules/@babel/runtime/helpers/esm/AsyncGenerator.js create mode 100644 node_modules/@babel/runtime/helpers/esm/AwaitValue.js create mode 100644 node_modules/@babel/runtime/helpers/esm/applyDecoratedDescriptor.js create mode 100644 node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js create mode 100644 node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js create mode 100644 node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js create mode 100644 node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js create mode 100644 node_modules/@babel/runtime/helpers/esm/asyncGeneratorDelegate.js create mode 100644 node_modules/@babel/runtime/helpers/esm/asyncIterator.js create mode 100644 node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js create mode 100644 node_modules/@babel/runtime/helpers/esm/awaitAsyncGenerator.js create mode 100644 node_modules/@babel/runtime/helpers/esm/classApplyDescriptorDestructureSet.js create mode 100644 node_modules/@babel/runtime/helpers/esm/classApplyDescriptorGet.js create mode 100644 node_modules/@babel/runtime/helpers/esm/classApplyDescriptorSet.js create mode 100644 node_modules/@babel/runtime/helpers/esm/classCallCheck.js create mode 100644 node_modules/@babel/runtime/helpers/esm/classCheckPrivateStaticAccess.js create mode 100644 node_modules/@babel/runtime/helpers/esm/classCheckPrivateStaticFieldDescriptor.js create mode 100644 node_modules/@babel/runtime/helpers/esm/classExtractFieldDescriptor.js create mode 100644 node_modules/@babel/runtime/helpers/esm/classNameTDZError.js create mode 100644 node_modules/@babel/runtime/helpers/esm/classPrivateFieldDestructureSet.js create mode 100644 node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet.js create mode 100644 node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseBase.js create mode 100644 node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseKey.js create mode 100644 node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet.js create mode 100644 node_modules/@babel/runtime/helpers/esm/classPrivateMethodGet.js create mode 100644 node_modules/@babel/runtime/helpers/esm/classPrivateMethodSet.js create mode 100644 node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldDestructureSet.js create mode 100644 node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldSpecGet.js create mode 100644 node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldSpecSet.js create mode 100644 node_modules/@babel/runtime/helpers/esm/classStaticPrivateMethodGet.js create mode 100644 node_modules/@babel/runtime/helpers/esm/classStaticPrivateMethodSet.js create mode 100644 node_modules/@babel/runtime/helpers/esm/construct.js create mode 100644 node_modules/@babel/runtime/helpers/esm/createClass.js create mode 100644 node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js create mode 100644 node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelperLoose.js create mode 100644 node_modules/@babel/runtime/helpers/esm/createSuper.js create mode 100644 node_modules/@babel/runtime/helpers/esm/decorate.js create mode 100644 node_modules/@babel/runtime/helpers/esm/defaults.js create mode 100644 node_modules/@babel/runtime/helpers/esm/defineEnumerableProperties.js create mode 100644 node_modules/@babel/runtime/helpers/esm/defineProperty.js create mode 100644 node_modules/@babel/runtime/helpers/esm/extends.js create mode 100644 node_modules/@babel/runtime/helpers/esm/get.js create mode 100644 node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js create mode 100644 node_modules/@babel/runtime/helpers/esm/inherits.js create mode 100644 node_modules/@babel/runtime/helpers/esm/inheritsLoose.js create mode 100644 node_modules/@babel/runtime/helpers/esm/initializerDefineProperty.js create mode 100644 node_modules/@babel/runtime/helpers/esm/initializerWarningHelper.js create mode 100644 node_modules/@babel/runtime/helpers/esm/instanceof.js create mode 100644 node_modules/@babel/runtime/helpers/esm/interopRequireDefault.js create mode 100644 node_modules/@babel/runtime/helpers/esm/interopRequireWildcard.js create mode 100644 node_modules/@babel/runtime/helpers/esm/isNativeFunction.js create mode 100644 node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js create mode 100644 node_modules/@babel/runtime/helpers/esm/iterableToArray.js create mode 100644 node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js create mode 100644 node_modules/@babel/runtime/helpers/esm/iterableToArrayLimitLoose.js create mode 100644 node_modules/@babel/runtime/helpers/esm/jsx.js create mode 100644 node_modules/@babel/runtime/helpers/esm/maybeArrayLike.js create mode 100644 node_modules/@babel/runtime/helpers/esm/newArrowCheck.js create mode 100644 node_modules/@babel/runtime/helpers/esm/nonIterableRest.js create mode 100644 node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js create mode 100644 node_modules/@babel/runtime/helpers/esm/objectDestructuringEmpty.js create mode 100644 node_modules/@babel/runtime/helpers/esm/objectSpread.js create mode 100644 node_modules/@babel/runtime/helpers/esm/objectSpread2.js create mode 100644 node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js create mode 100644 node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js create mode 100644 node_modules/@babel/runtime/helpers/esm/package.json create mode 100644 node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js create mode 100644 node_modules/@babel/runtime/helpers/esm/readOnlyError.js create mode 100644 node_modules/@babel/runtime/helpers/esm/set.js create mode 100644 node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js create mode 100644 node_modules/@babel/runtime/helpers/esm/skipFirstGeneratorNext.js create mode 100644 node_modules/@babel/runtime/helpers/esm/slicedToArray.js create mode 100644 node_modules/@babel/runtime/helpers/esm/slicedToArrayLoose.js create mode 100644 node_modules/@babel/runtime/helpers/esm/superPropBase.js create mode 100644 node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js create mode 100644 node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteralLoose.js create mode 100644 node_modules/@babel/runtime/helpers/esm/tdz.js create mode 100644 node_modules/@babel/runtime/helpers/esm/temporalRef.js create mode 100644 node_modules/@babel/runtime/helpers/esm/temporalUndefined.js create mode 100644 node_modules/@babel/runtime/helpers/esm/toArray.js create mode 100644 node_modules/@babel/runtime/helpers/esm/toConsumableArray.js create mode 100644 node_modules/@babel/runtime/helpers/esm/toPrimitive.js create mode 100644 node_modules/@babel/runtime/helpers/esm/toPropertyKey.js create mode 100644 node_modules/@babel/runtime/helpers/esm/typeof.js create mode 100644 node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js create mode 100644 node_modules/@babel/runtime/helpers/esm/wrapAsyncGenerator.js create mode 100644 node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js create mode 100644 node_modules/@babel/runtime/helpers/esm/wrapRegExp.js create mode 100644 node_modules/@babel/runtime/helpers/esm/writeOnlyError.js create mode 100644 node_modules/@babel/runtime/helpers/extends.js create mode 100644 node_modules/@babel/runtime/helpers/get.js create mode 100644 node_modules/@babel/runtime/helpers/getPrototypeOf.js create mode 100644 node_modules/@babel/runtime/helpers/inherits.js create mode 100644 node_modules/@babel/runtime/helpers/inheritsLoose.js create mode 100644 node_modules/@babel/runtime/helpers/initializerDefineProperty.js create mode 100644 node_modules/@babel/runtime/helpers/initializerWarningHelper.js create mode 100644 node_modules/@babel/runtime/helpers/instanceof.js create mode 100644 node_modules/@babel/runtime/helpers/interopRequireDefault.js create mode 100644 node_modules/@babel/runtime/helpers/interopRequireWildcard.js create mode 100644 node_modules/@babel/runtime/helpers/isNativeFunction.js create mode 100644 node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js create mode 100644 node_modules/@babel/runtime/helpers/iterableToArray.js create mode 100644 node_modules/@babel/runtime/helpers/iterableToArrayLimit.js create mode 100644 node_modules/@babel/runtime/helpers/iterableToArrayLimitLoose.js create mode 100644 node_modules/@babel/runtime/helpers/jsx.js create mode 100644 node_modules/@babel/runtime/helpers/maybeArrayLike.js create mode 100644 node_modules/@babel/runtime/helpers/newArrowCheck.js create mode 100644 node_modules/@babel/runtime/helpers/nonIterableRest.js create mode 100644 node_modules/@babel/runtime/helpers/nonIterableSpread.js create mode 100644 node_modules/@babel/runtime/helpers/objectDestructuringEmpty.js create mode 100644 node_modules/@babel/runtime/helpers/objectSpread.js create mode 100644 node_modules/@babel/runtime/helpers/objectSpread2.js create mode 100644 node_modules/@babel/runtime/helpers/objectWithoutProperties.js create mode 100644 node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js create mode 100644 node_modules/@babel/runtime/helpers/possibleConstructorReturn.js create mode 100644 node_modules/@babel/runtime/helpers/readOnlyError.js create mode 100644 node_modules/@babel/runtime/helpers/set.js create mode 100644 node_modules/@babel/runtime/helpers/setPrototypeOf.js create mode 100644 node_modules/@babel/runtime/helpers/skipFirstGeneratorNext.js create mode 100644 node_modules/@babel/runtime/helpers/slicedToArray.js create mode 100644 node_modules/@babel/runtime/helpers/slicedToArrayLoose.js create mode 100644 node_modules/@babel/runtime/helpers/superPropBase.js create mode 100644 node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js create mode 100644 node_modules/@babel/runtime/helpers/taggedTemplateLiteralLoose.js create mode 100644 node_modules/@babel/runtime/helpers/tdz.js create mode 100644 node_modules/@babel/runtime/helpers/temporalRef.js create mode 100644 node_modules/@babel/runtime/helpers/temporalUndefined.js create mode 100644 node_modules/@babel/runtime/helpers/toArray.js create mode 100644 node_modules/@babel/runtime/helpers/toConsumableArray.js create mode 100644 node_modules/@babel/runtime/helpers/toPrimitive.js create mode 100644 node_modules/@babel/runtime/helpers/toPropertyKey.js create mode 100644 node_modules/@babel/runtime/helpers/typeof.js create mode 100644 node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js create mode 100644 node_modules/@babel/runtime/helpers/wrapAsyncGenerator.js create mode 100644 node_modules/@babel/runtime/helpers/wrapNativeSuper.js create mode 100644 node_modules/@babel/runtime/helpers/wrapRegExp.js create mode 100644 node_modules/@babel/runtime/helpers/writeOnlyError.js create mode 100644 node_modules/@babel/runtime/package.json create mode 100644 node_modules/@babel/runtime/regenerator/index.js create mode 100644 node_modules/history/DOMUtils.js create mode 100644 node_modules/history/ExecutionEnvironment.js create mode 100644 node_modules/history/LICENSE create mode 100644 node_modules/history/LocationUtils.js create mode 100644 node_modules/history/PathUtils.js create mode 100644 node_modules/history/README.md create mode 100644 node_modules/history/cjs/history.js create mode 100644 node_modules/history/cjs/history.min.js create mode 100644 node_modules/history/createBrowserHistory.js create mode 100644 node_modules/history/createHashHistory.js create mode 100644 node_modules/history/createMemoryHistory.js create mode 100644 node_modules/history/createTransitionManager.js create mode 100644 node_modules/history/es/DOMUtils.js create mode 100644 node_modules/history/es/ExecutionEnvironment.js create mode 100644 node_modules/history/es/LocationUtils.js create mode 100644 node_modules/history/es/PathUtils.js create mode 100644 node_modules/history/es/createBrowserHistory.js create mode 100644 node_modules/history/es/createHashHistory.js create mode 100644 node_modules/history/es/createMemoryHistory.js create mode 100644 node_modules/history/es/createTransitionManager.js create mode 100644 node_modules/history/es/warnAboutDeprecatedESMImport.js create mode 100644 node_modules/history/esm/history.js create mode 100644 node_modules/history/index.js create mode 100644 node_modules/history/package.json create mode 100644 node_modules/history/umd/history.js create mode 100644 node_modules/history/umd/history.min.js create mode 100644 node_modules/history/warnAboutDeprecatedCJSRequire.js create mode 100644 node_modules/hoist-non-react-statics/CHANGELOG.md create mode 100644 node_modules/hoist-non-react-statics/LICENSE.md create mode 100644 node_modules/hoist-non-react-statics/README.md create mode 100644 node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js create mode 100644 node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.js create mode 100644 node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.min.js create mode 100644 node_modules/hoist-non-react-statics/package.json create mode 100644 node_modules/hoist-non-react-statics/src/index.js create mode 100644 node_modules/isarray/README.md create mode 100644 node_modules/isarray/build/build.js create mode 100644 node_modules/isarray/component.json create mode 100644 node_modules/isarray/index.js create mode 100644 node_modules/isarray/package.json create mode 100644 node_modules/js-tokens/CHANGELOG.md create mode 100644 node_modules/js-tokens/LICENSE create mode 100644 node_modules/js-tokens/README.md create mode 100644 node_modules/js-tokens/index.js create mode 100644 node_modules/js-tokens/package.json create mode 100644 node_modules/loose-envify/LICENSE create mode 100644 node_modules/loose-envify/README.md create mode 100644 node_modules/loose-envify/cli.js create mode 100644 node_modules/loose-envify/custom.js create mode 100644 node_modules/loose-envify/index.js create mode 100644 node_modules/loose-envify/loose-envify.js create mode 100644 node_modules/loose-envify/package.json create mode 100644 node_modules/loose-envify/replace.js create mode 100644 node_modules/mini-create-react-context/LICENSE create mode 100644 node_modules/mini-create-react-context/README.md create mode 100644 node_modules/mini-create-react-context/dist/cjs/index.js create mode 100644 node_modules/mini-create-react-context/dist/cjs/index.min.js create mode 100644 node_modules/mini-create-react-context/dist/esm/index.js create mode 100644 node_modules/mini-create-react-context/dist/index.d.ts create mode 100644 node_modules/mini-create-react-context/package.json create mode 100644 node_modules/object-assign/index.js create mode 100644 node_modules/object-assign/license create mode 100644 node_modules/object-assign/package.json create mode 100644 node_modules/object-assign/readme.md create mode 100644 node_modules/path-to-regexp/History.md create mode 100644 node_modules/path-to-regexp/LICENSE create mode 100644 node_modules/path-to-regexp/Readme.md create mode 100644 node_modules/path-to-regexp/index.d.ts create mode 100644 node_modules/path-to-regexp/index.js create mode 100644 node_modules/path-to-regexp/package.json create mode 100644 node_modules/prop-types/CHANGELOG.md create mode 100644 node_modules/prop-types/LICENSE create mode 100644 node_modules/prop-types/README.md create mode 100644 node_modules/prop-types/checkPropTypes.js create mode 100644 node_modules/prop-types/factory.js create mode 100644 node_modules/prop-types/factoryWithThrowingShims.js create mode 100644 node_modules/prop-types/factoryWithTypeCheckers.js create mode 100644 node_modules/prop-types/index.js create mode 100644 node_modules/prop-types/lib/ReactPropTypesSecret.js create mode 100644 node_modules/prop-types/package.json create mode 100644 node_modules/prop-types/prop-types.js create mode 100644 node_modules/prop-types/prop-types.min.js create mode 100644 node_modules/react-is/LICENSE create mode 100644 node_modules/react-is/README.md create mode 100644 node_modules/react-is/build-info.json create mode 100644 node_modules/react-is/cjs/react-is.development.js create mode 100644 node_modules/react-is/cjs/react-is.production.min.js create mode 100644 node_modules/react-is/index.js create mode 100644 node_modules/react-is/package.json create mode 100644 node_modules/react-is/umd/react-is.development.js create mode 100644 node_modules/react-is/umd/react-is.production.min.js create mode 100644 node_modules/react-router-dom/BrowserRouter.js create mode 100644 node_modules/react-router-dom/HashRouter.js create mode 100644 node_modules/react-router-dom/LICENSE create mode 100644 node_modules/react-router-dom/Link.js create mode 100644 node_modules/react-router-dom/MemoryRouter.js create mode 100644 node_modules/react-router-dom/NavLink.js create mode 100644 node_modules/react-router-dom/Prompt.js create mode 100644 node_modules/react-router-dom/README.md create mode 100644 node_modules/react-router-dom/Redirect.js create mode 100644 node_modules/react-router-dom/Route.js create mode 100644 node_modules/react-router-dom/Router.js create mode 100644 node_modules/react-router-dom/StaticRouter.js create mode 100644 node_modules/react-router-dom/Switch.js create mode 100644 node_modules/react-router-dom/cjs/react-router-dom.js create mode 100644 node_modules/react-router-dom/cjs/react-router-dom.js.map create mode 100644 node_modules/react-router-dom/cjs/react-router-dom.min.js create mode 100644 node_modules/react-router-dom/cjs/react-router-dom.min.js.map create mode 100644 node_modules/react-router-dom/es/BrowserRouter.js create mode 100644 node_modules/react-router-dom/es/HashRouter.js create mode 100644 node_modules/react-router-dom/es/Link.js create mode 100644 node_modules/react-router-dom/es/MemoryRouter.js create mode 100644 node_modules/react-router-dom/es/NavLink.js create mode 100644 node_modules/react-router-dom/es/Prompt.js create mode 100644 node_modules/react-router-dom/es/Redirect.js create mode 100644 node_modules/react-router-dom/es/Route.js create mode 100644 node_modules/react-router-dom/es/Router.js create mode 100644 node_modules/react-router-dom/es/StaticRouter.js create mode 100644 node_modules/react-router-dom/es/Switch.js create mode 100644 node_modules/react-router-dom/es/generatePath.js create mode 100644 node_modules/react-router-dom/es/matchPath.js create mode 100644 node_modules/react-router-dom/es/warnAboutDeprecatedESMImport.js create mode 100644 node_modules/react-router-dom/es/withRouter.js create mode 100644 node_modules/react-router-dom/esm/react-router-dom.js create mode 100644 node_modules/react-router-dom/esm/react-router-dom.js.map create mode 100644 node_modules/react-router-dom/generatePath.js create mode 100644 node_modules/react-router-dom/index.js create mode 100644 node_modules/react-router-dom/matchPath.js create mode 100644 node_modules/react-router-dom/modules/BrowserRouter.js create mode 100644 node_modules/react-router-dom/modules/HashRouter.js create mode 100644 node_modules/react-router-dom/modules/Link.js create mode 100644 node_modules/react-router-dom/modules/NavLink.js create mode 100644 node_modules/react-router-dom/modules/index.js create mode 100644 node_modules/react-router-dom/modules/utils/locationUtils.js create mode 100644 node_modules/react-router-dom/package.json create mode 100644 node_modules/react-router-dom/umd/react-router-dom.js create mode 100644 node_modules/react-router-dom/umd/react-router-dom.js.map create mode 100644 node_modules/react-router-dom/umd/react-router-dom.min.js create mode 100644 node_modules/react-router-dom/umd/react-router-dom.min.js.map create mode 100644 node_modules/react-router-dom/warnAboutDeprecatedCJSRequire.js create mode 100644 node_modules/react-router-dom/withRouter.js create mode 100644 node_modules/react-router/LICENSE create mode 100644 node_modules/react-router/MemoryRouter.js create mode 100644 node_modules/react-router/Prompt.js create mode 100644 node_modules/react-router/README.md create mode 100644 node_modules/react-router/Redirect.js create mode 100644 node_modules/react-router/Route.js create mode 100644 node_modules/react-router/Router.js create mode 100644 node_modules/react-router/StaticRouter.js create mode 100644 node_modules/react-router/Switch.js create mode 100644 node_modules/react-router/cjs/react-router.js create mode 100644 node_modules/react-router/cjs/react-router.js.map create mode 100644 node_modules/react-router/cjs/react-router.min.js create mode 100644 node_modules/react-router/cjs/react-router.min.js.map create mode 100644 node_modules/react-router/es/MemoryRouter.js create mode 100644 node_modules/react-router/es/Prompt.js create mode 100644 node_modules/react-router/es/Redirect.js create mode 100644 node_modules/react-router/es/Route.js create mode 100644 node_modules/react-router/es/Router.js create mode 100644 node_modules/react-router/es/StaticRouter.js create mode 100644 node_modules/react-router/es/Switch.js create mode 100644 node_modules/react-router/es/generatePath.js create mode 100644 node_modules/react-router/es/matchPath.js create mode 100644 node_modules/react-router/es/warnAboutDeprecatedESMImport.js create mode 100644 node_modules/react-router/es/withRouter.js create mode 100644 node_modules/react-router/esm/react-router.js create mode 100644 node_modules/react-router/esm/react-router.js.map create mode 100644 node_modules/react-router/generatePath.js create mode 100644 node_modules/react-router/index.js create mode 100644 node_modules/react-router/matchPath.js create mode 100644 node_modules/react-router/modules/HistoryContext.js create mode 100644 node_modules/react-router/modules/Lifecycle.js create mode 100644 node_modules/react-router/modules/MemoryRouter.js create mode 100644 node_modules/react-router/modules/Prompt.js create mode 100644 node_modules/react-router/modules/Redirect.js create mode 100644 node_modules/react-router/modules/Route.js create mode 100644 node_modules/react-router/modules/Router.js create mode 100644 node_modules/react-router/modules/RouterContext.js create mode 100644 node_modules/react-router/modules/StaticRouter.js create mode 100644 node_modules/react-router/modules/Switch.js create mode 100644 node_modules/react-router/modules/createNameContext.js create mode 100644 node_modules/react-router/modules/generatePath.js create mode 100644 node_modules/react-router/modules/hooks.js create mode 100644 node_modules/react-router/modules/index.js create mode 100644 node_modules/react-router/modules/matchPath.js create mode 100644 node_modules/react-router/modules/withRouter.js create mode 100644 node_modules/react-router/package.json create mode 100644 node_modules/react-router/umd/react-router.js create mode 100644 node_modules/react-router/umd/react-router.js.map create mode 100644 node_modules/react-router/umd/react-router.min.js create mode 100644 node_modules/react-router/umd/react-router.min.js.map create mode 100644 node_modules/react-router/warnAboutDeprecatedCJSRequire.js create mode 100644 node_modules/react-router/withRouter.js create mode 100644 node_modules/regenerator-runtime/LICENSE create mode 100644 node_modules/regenerator-runtime/README.md create mode 100644 node_modules/regenerator-runtime/package.json create mode 100644 node_modules/regenerator-runtime/path.js create mode 100644 node_modules/regenerator-runtime/runtime.js create mode 100644 node_modules/resolve-pathname/LICENSE create mode 100644 node_modules/resolve-pathname/README.md create mode 100644 node_modules/resolve-pathname/cjs/resolve-pathname.js create mode 100644 node_modules/resolve-pathname/cjs/resolve-pathname.min.js create mode 100644 node_modules/resolve-pathname/esm/resolve-pathname.js create mode 100644 node_modules/resolve-pathname/index.js create mode 100644 node_modules/resolve-pathname/package.json create mode 100644 node_modules/resolve-pathname/umd/resolve-pathname.js create mode 100644 node_modules/resolve-pathname/umd/resolve-pathname.min.js create mode 100644 node_modules/tiny-invariant/LICENSE create mode 100644 node_modules/tiny-invariant/README.md create mode 100644 node_modules/tiny-invariant/dist/tiny-invariant.cjs.js create mode 100644 node_modules/tiny-invariant/dist/tiny-invariant.d.ts create mode 100644 node_modules/tiny-invariant/dist/tiny-invariant.esm.js create mode 100644 node_modules/tiny-invariant/dist/tiny-invariant.js create mode 100644 node_modules/tiny-invariant/dist/tiny-invariant.min.js create mode 100644 node_modules/tiny-invariant/package.json create mode 100644 node_modules/tiny-invariant/src/tiny-invariant.flow.js create mode 100644 node_modules/tiny-invariant/src/tiny-invariant.ts create mode 100644 node_modules/tiny-warning/LICENSE create mode 100644 node_modules/tiny-warning/README.md create mode 100644 node_modules/tiny-warning/dist/tiny-warning.cjs.js create mode 100644 node_modules/tiny-warning/dist/tiny-warning.cjs.js.flow create mode 100644 node_modules/tiny-warning/dist/tiny-warning.esm.js create mode 100644 node_modules/tiny-warning/dist/tiny-warning.js create mode 100644 node_modules/tiny-warning/dist/tiny-warning.min.js create mode 100644 node_modules/tiny-warning/package.json create mode 100644 node_modules/tiny-warning/src/index.d.ts create mode 100644 node_modules/tiny-warning/src/index.js create mode 100644 node_modules/value-equal/LICENSE create mode 100644 node_modules/value-equal/README.md create mode 100644 node_modules/value-equal/cjs/value-equal.js create mode 100644 node_modules/value-equal/cjs/value-equal.min.js create mode 100644 node_modules/value-equal/esm/value-equal.js create mode 100644 node_modules/value-equal/index.js create mode 100644 node_modules/value-equal/package.json create mode 100644 node_modules/value-equal/umd/value-equal.js create mode 100644 node_modules/value-equal/umd/value-equal.min.js create mode 100644 package-lock.json diff --git a/client/.eslintcache b/client/.eslintcache new file mode 100644 index 0000000..81599e8 --- /dev/null +++ b/client/.eslintcache @@ -0,0 +1 @@ +[{"G:\\_comp_\\odsc\\orig\\AllNotes\\client\\src\\index.js":"1","G:\\_comp_\\odsc\\orig\\AllNotes\\client\\src\\reportWebVitals.js":"2","G:\\_comp_\\odsc\\orig\\AllNotes\\client\\src\\App.js":"3","G:\\_comp_\\odsc\\orig\\AllNotes\\client\\src\\components\\error\\Error.js":"4","G:\\_comp_\\odsc\\orig\\AllNotes\\client\\src\\components\\home\\Home.js":"5","G:\\_comp_\\odsc\\orig\\AllNotes\\client\\src\\history.js":"6"},{"size":500,"mtime":1615902948521,"results":"7","hashOfConfig":"8"},{"size":362,"mtime":1615902948524,"results":"9","hashOfConfig":"8"},{"size":558,"mtime":1616058244813,"results":"10","hashOfConfig":"8"},{"size":495,"mtime":1616058444690,"results":"11","hashOfConfig":"8"},{"size":209,"mtime":1616057953339,"results":"12","hashOfConfig":"8"},{"size":99,"mtime":1616054087701,"results":"13","hashOfConfig":"8"},{"filePath":"14","messages":"15","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"16"},"eix1er",{"filePath":"17","messages":"18","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"16"},{"filePath":"19","messages":"20","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"21","messages":"22","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"23","messages":"24","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"16"},{"filePath":"25","messages":"26","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"G:\\_comp_\\odsc\\orig\\AllNotes\\client\\src\\index.js",[],["27","28"],"G:\\_comp_\\odsc\\orig\\AllNotes\\client\\src\\reportWebVitals.js",[],"G:\\_comp_\\odsc\\orig\\AllNotes\\client\\src\\App.js",["29","30"],"G:\\_comp_\\odsc\\orig\\AllNotes\\client\\src\\components\\error\\Error.js",[],"G:\\_comp_\\odsc\\orig\\AllNotes\\client\\src\\components\\home\\Home.js",[],"G:\\_comp_\\odsc\\orig\\AllNotes\\client\\src\\history.js",[],{"ruleId":"31","replacedBy":"32"},{"ruleId":"33","replacedBy":"34"},{"ruleId":"35","severity":1,"message":"36","line":1,"column":8,"nodeType":"37","messageId":"38","endLine":1,"endColumn":12},{"ruleId":"35","severity":1,"message":"39","line":9,"column":20,"nodeType":"37","messageId":"38","endLine":9,"endColumn":27},"no-native-reassign",["40"],"no-negated-in-lhs",["41"],"no-unused-vars","'logo' is defined but never used.","Identifier","unusedVar","'Routerr' is defined but never used.","no-global-assign","no-unsafe-negation"] \ No newline at end of file diff --git a/client/package-lock.json b/client/package-lock.json new file mode 100644 index 0000000..4d65206 --- /dev/null +++ b/client/package-lock.json @@ -0,0 +1,15912 @@ +{ + "name": "client", + "version": "0.1.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/code-frame": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", + "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "requires": { + "@babel/highlight": "^7.12.13" + } + }, + "@babel/compat-data": { + "version": "7.13.11", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.13.11.tgz", + "integrity": "sha512-BwKEkO+2a67DcFeS3RLl0Z3Gs2OvdXewuWjc1Hfokhb5eQWP9YRYH1/+VrVZvql2CfjOiNGqSAFOYt4lsqTHzg==" + }, + "@babel/core": { + "version": "7.12.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.3.tgz", + "integrity": "sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g==", + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.1", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.1", + "@babel/parser": "^7.12.3", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + } + } + }, + "@babel/generator": { + "version": "7.13.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.13.9.tgz", + "integrity": "sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw==", + "requires": { + "@babel/types": "^7.13.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + } + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz", + "integrity": "sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw==", + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz", + "integrity": "sha512-CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA==", + "requires": { + "@babel/helper-explode-assignable-expression": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.10.tgz", + "integrity": "sha512-/Xju7Qg1GQO4mHZ/Kcs6Au7gfafgZnwm+a7sy/ow/tV1sHeraRUHbjdat8/UvDor4Tez+siGKDk6zIKtCPKVJA==", + "requires": { + "@babel/compat-data": "^7.13.8", + "@babel/helper-validator-option": "^7.12.17", + "browserslist": "^4.14.5", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.13.11", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.13.11.tgz", + "integrity": "sha512-ays0I7XYq9xbjCSvT+EvysLgfc3tOkwCULHjrnscGT3A9qD4sk3wXnJ3of0MAWsWGjdinFvajHU2smYuqXKMrw==", + "requires": { + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-member-expression-to-functions": "^7.13.0", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/helper-replace-supers": "^7.13.0", + "@babel/helper-split-export-declaration": "^7.12.13" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.17.tgz", + "integrity": "sha512-p2VGmBu9oefLZ2nQpgnEnG0ZlRPvL8gAGvPUMQwUdaE8k49rOMuZpOwdQoy5qJf6K8jL3bcAMhVUlHAjIgJHUg==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.12.13", + "regexpu-core": "^4.7.1" + } + }, + "@babel/helper-define-polyfill-provider": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.1.5.tgz", + "integrity": "sha512-nXuzCSwlJ/WKr8qxzW816gwyT6VZgiJG17zR40fou70yfAcqjoNyTLl/DQ+FExw5Hx5KNqshmN8Ldl/r2N7cTg==", + "requires": { + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/traverse": "^7.13.0", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.13.0.tgz", + "integrity": "sha512-qS0peLTDP8kOisG1blKbaoBg/o9OSa1qoumMjTK5pM+KDTtpxpsiubnCGP34vK8BXGcb2M9eigwgvoJryrzwWA==", + "requires": { + "@babel/types": "^7.13.0" + } + }, + "@babel/helper-function-name": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", + "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", + "requires": { + "@babel/helper-get-function-arity": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", + "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.0.tgz", + "integrity": "sha512-0kBzvXiIKfsCA0y6cFEIJf4OdzfpRuNk4+YTeHZpGGc666SATFKTz6sRncwFnQk7/ugJ4dSrCj6iJuvW4Qwr2g==", + "requires": { + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.0.tgz", + "integrity": "sha512-yvRf8Ivk62JwisqV1rFRMxiSMDGnN6KH1/mDMmIrij4jztpQNRoHqqMG3U6apYbGRPJpgPalhva9Yd06HlUxJQ==", + "requires": { + "@babel/types": "^7.13.0" + } + }, + "@babel/helper-module-imports": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz", + "integrity": "sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==", + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-module-transforms": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.13.0.tgz", + "integrity": "sha512-Ls8/VBwH577+pw7Ku1QkUWIyRRNHpYlts7+qSqBBFCW3I8QteB9DxfcZ5YJpOwH6Ihe/wn8ch7fMGOP1OhEIvw==", + "requires": { + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-replace-supers": "^7.13.0", + "@babel/helper-simple-access": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/helper-validator-identifier": "^7.12.11", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0", + "lodash": "^4.17.19" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", + "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==" + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.13.0.tgz", + "integrity": "sha512-pUQpFBE9JvC9lrQbpX0TmeNIy5s7GnZjna2lhhcHC7DzgBs6fWn722Y5cfwgrtrqc7NAJwMvOa0mKhq6XaE4jg==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.12.13", + "@babel/helper-wrap-function": "^7.13.0", + "@babel/types": "^7.13.0" + } + }, + "@babel/helper-replace-supers": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.13.0.tgz", + "integrity": "sha512-Segd5me1+Pz+rmN/NFBOplMbZG3SqRJOBlY+mA0SxAv6rjj7zJqr1AVr3SfzUVTLCv7ZLU5FycOM/SBGuLPbZw==", + "requires": { + "@babel/helper-member-expression-to-functions": "^7.13.0", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" + } + }, + "@babel/helper-simple-access": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz", + "integrity": "sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA==", + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz", + "integrity": "sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==", + "requires": { + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", + "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" + }, + "@babel/helper-validator-option": { + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz", + "integrity": "sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==" + }, + "@babel/helper-wrap-function": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.13.0.tgz", + "integrity": "sha512-1UX9F7K3BS42fI6qd2A4BjKzgGjToscyZTdp1DjknHLCIvpgne6918io+aL5LXFcER/8QWiwpoY902pVEqgTXA==", + "requires": { + "@babel/helper-function-name": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" + } + }, + "@babel/helpers": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.13.10.tgz", + "integrity": "sha512-4VO883+MWPDUVRF3PhiLBUFHoX/bsLTGFpFK/HqvvfBZz2D57u9XzPVNFVBTc0PW/CWR9BXTOKt8NF4DInUHcQ==", + "requires": { + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" + } + }, + "@babel/highlight": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz", + "integrity": "sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==", + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/parser": { + "version": "7.13.11", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.11.tgz", + "integrity": "sha512-PhuoqeHoO9fc4ffMEVk4qb/w/s2iOSWohvbHxLtxui0eBg3Lg5gN1U8wp1V1u61hOWkPQJJyJzGH6Y+grwkq8Q==" + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.13.8.tgz", + "integrity": "sha512-rPBnhj+WgoSmgq+4gQUtXx/vOcU+UYtjy1AA/aeD61Hwj410fwYyqfUcRP3lR8ucgliVJL/G7sXcNUecC75IXA==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-remap-async-to-generator": "^7.13.0", + "@babel/plugin-syntax-async-generators": "^7.8.4" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.13.0.tgz", + "integrity": "sha512-KnTDjFNC1g+45ka0myZNvSBFLhNCLN+GeGYLDEA8Oq7MZ6yMgfLoIRh86GRT0FjtJhZw8JyUskP9uvj5pHM9Zg==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-proposal-decorators": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.12.1.tgz", + "integrity": "sha512-knNIuusychgYN8fGJHONL0RbFxLGawhXOJNLBk75TniTsZZeA+wdkDuv6wp4lGwzQEKjZi6/WYtnb3udNPmQmQ==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-decorators": "^7.12.1" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.13.8.tgz", + "integrity": "sha512-ONWKj0H6+wIRCkZi9zSbZtE/r73uOhMVHh256ys0UzfM7I3d4n+spZNWjOnJv2gzopumP2Wxi186vI8N0Y2JyQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + } + }, + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.13.tgz", + "integrity": "sha512-INAgtFo4OnLN3Y/j0VwAgw3HDXcDtX+C/erMvWzuV9v71r7urb6iyMXu7eM9IgLr1ElLlOkaHjJ0SbCmdOQ3Iw==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.13.8.tgz", + "integrity": "sha512-w4zOPKUFPX1mgvTmL/fcEqy34hrQ1CRcGxdphBc6snDnnqJ47EZDIyop6IwXzAC8G916hsIuXB2ZMBCExC5k7Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-json-strings": "^7.8.3" + } + }, + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.13.8.tgz", + "integrity": "sha512-aul6znYB4N4HGweImqKn59Su9RS8lbUIqxtXTOcAGtNIDczoEFv+l1EhmX8rUBp3G1jMjKJm8m0jXVp63ZpS4A==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.13.8.tgz", + "integrity": "sha512-iePlDPBn//UhxExyS9KyeYU7RM9WScAG+D3Hhno0PLJebAEpDZMocbDe64eqynhNAnwz/vZoL/q/QB2T1OH39A==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.13.tgz", + "integrity": "sha512-O1jFia9R8BUCl3ZGB7eitaAPu62TXJRHn7rh+ojNERCFyqRwJMTmhz+tJ+k0CwI6CLjX/ee4qW74FSqlq9I35w==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.13.8.tgz", + "integrity": "sha512-DhB2EuB1Ih7S3/IRX5AFVgZ16k3EzfRbq97CxAVI1KSYcW+lexV8VZb7G7L8zuPVSdQMRn0kiBpf/Yzu9ZKH0g==", + "requires": { + "@babel/compat-data": "^7.13.8", + "@babel/helper-compilation-targets": "^7.13.8", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.13.0" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.13.8.tgz", + "integrity": "sha512-0wS/4DUF1CuTmGo+NiaHfHcVSeSLj5S3e6RivPTg/2k3wOv3jO35tZ6/ZWsQhQMvdgI7CwphjQa/ccarLymHVA==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.13.8.tgz", + "integrity": "sha512-hpbBwbTgd7Cz1QryvwJZRo1U0k1q8uyBmeXOSQUjdg/A2TASkhR/rz7AyqZ/kS8kbpsNA80rOYbxySBJAqmhhQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.13.0.tgz", + "integrity": "sha512-MXyyKQd9inhx1kDYPkFRVOBXQ20ES8Pto3T7UZ92xj2mY0EVD8oAVzeyYuVfy/mxAdTSIayOvg+aVzcHV2bn6Q==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz", + "integrity": "sha512-XyJmZidNfofEkqFV5VC/bLabGmO5QzenPO/YOfGuEbgU+2sSwMmio3YLb4WtBgcmmdwZHyVyv8on77IUjQ5Gvg==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-decorators": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.12.13.tgz", + "integrity": "sha512-Rw6aIXGuqDLr6/LoBBYE57nKOzQpz/aDkKlMqEwH+Vp0MXbG6H/TfRjaY343LKxzAKAMXIHsQ8JzaZKuDZ9MwA==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-flow": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.12.13.tgz", + "integrity": "sha512-J/RYxnlSLXZLVR7wTRsozxKT8qbsx1mNKJzXEEjQ0Kjx1ZACcyHgbanNWNCFtc36IzuWhYWPpvJFFoexoOWFmA==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.13.tgz", + "integrity": "sha512-d4HM23Q1K7oq/SLNmG6mRt85l2csmQ0cHRaxRXjKW0YFdEXqlZ5kzFQKH5Uc3rDJECgu+yCRgPkG04Mm98R/1g==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz", + "integrity": "sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.12.13.tgz", + "integrity": "sha512-cHP3u1JiUiG2LFDKbXnwVad81GvfyIOmCD6HIEId6ojrY0Drfy2q1jw7BwN7dE84+kTnBjLkXoL3IEy/3JPu2w==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.13.0.tgz", + "integrity": "sha512-96lgJagobeVmazXFaDrbmCLQxBysKu7U6Do3mLsx27gf5Dk85ezysrs2BZUpXD703U/Su1xTBDxxar2oa4jAGg==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.13.0.tgz", + "integrity": "sha512-3j6E004Dx0K3eGmhxVJxwwI89CTJrce7lg3UrtFuDAVQ/2+SJ/h/aSFOeE6/n0WB1GsOffsJp6MnPQNQ8nmwhg==", + "requires": { + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-remap-async-to-generator": "^7.13.0" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.13.tgz", + "integrity": "sha512-zNyFqbc3kI/fVpqwfqkg6RvBgFpC4J18aKKMmv7KdQ/1GgREapSJAykLMVNwfRGO3BtHj3YQZl8kxCXPcVMVeg==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.13.tgz", + "integrity": "sha512-Pxwe0iqWJX4fOOM2kEZeUuAxHMWb9nK+9oh5d11bsLoB0xMg+mkDpt0eYuDZB7ETrY9bbcVlKUGTOGWy7BHsMQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.13.0.tgz", + "integrity": "sha512-9BtHCPUARyVH1oXGcSJD3YpsqRLROJx5ZNP6tN5vnk17N0SVf9WCtf8Nuh1CFmgByKKAIMstitKduoCmsaDK5g==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.12.13", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-replace-supers": "^7.13.0", + "@babel/helper-split-export-declaration": "^7.12.13", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.13.0.tgz", + "integrity": "sha512-RRqTYTeZkZAz8WbieLTvKUEUxZlUTdmL5KGMyZj7FnMfLNKV4+r5549aORG/mgojRmFlQMJDUupwAMiF2Q7OUg==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.0.tgz", + "integrity": "sha512-zym5em7tePoNT9s964c0/KU3JPPnuq7VhIxPRefJ4/s82cD+q1mgKfuGRDMCPL0HTyKz4dISuQlCusfgCJ86HA==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.13.tgz", + "integrity": "sha512-foDrozE65ZFdUC2OfgeOCrEPTxdB3yjqxpXh8CH+ipd9CHd4s/iq81kcUpyH8ACGNEPdFqbtzfgzbT/ZGlbDeQ==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.13.tgz", + "integrity": "sha512-NfADJiiHdhLBW3pulJlJI2NB0t4cci4WTZ8FtdIuNc2+8pslXdPtRRAEWqUY+m9kNOk2eRYbTAOipAxlrOcwwQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.13.tgz", + "integrity": "sha512-fbUelkM1apvqez/yYx1/oICVnGo2KM5s63mhGylrmXUxK/IAXSIf87QIxVfZldWf4QsOafY6vV3bX8aMHSvNrA==", + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-flow-strip-types": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.12.1.tgz", + "integrity": "sha512-8hAtkmsQb36yMmEtk2JZ9JnVyDSnDOdlB+0nEGzIDLuK4yR3JcEjfuFPYkdEPSh8Id+rAMeBEn+X0iVEyho6Hg==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-flow": "^7.12.1" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.13.0.tgz", + "integrity": "sha512-IHKT00mwUVYE0zzbkDgNRP6SRzvfGCYsOxIRz8KsiaaHCcT9BWIkO+H9QRJseHBLOGBZkHUdHiqj6r0POsdytg==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.13.tgz", + "integrity": "sha512-6K7gZycG0cmIwwF7uMK/ZqeCikCGVBdyP2J5SKNCXO5EOHcqi+z7Jwf8AmyDNcBgxET8DrEtCt/mPKPyAzXyqQ==", + "requires": { + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.13.tgz", + "integrity": "sha512-FW+WPjSR7hiUxMcKqyNjP05tQ2kmBCdpEpZHY1ARm96tGQCCBvXKnpjILtDplUnJ/eHZ0lALLM+d2lMFSpYJrQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.13.tgz", + "integrity": "sha512-kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.13.0.tgz", + "integrity": "sha512-EKy/E2NHhY/6Vw5d1k3rgoobftcNUmp9fGjb9XZwQLtTctsRBOTRO7RHHxfIky1ogMN5BxN7p9uMA3SzPfotMQ==", + "requires": { + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.13.8.tgz", + "integrity": "sha512-9QiOx4MEGglfYZ4XOnU79OHr6vIWUakIj9b4mioN8eQIoEh+pf5p/zEB36JpDFWA12nNMiRf7bfoRvl9Rn79Bw==", + "requires": { + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-simple-access": "^7.12.13", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.13.8.tgz", + "integrity": "sha512-hwqctPYjhM6cWvVIlOIe27jCIBgHCsdH2xCJVAYQm7V5yTMoilbVMi9f6wKg0rpQAOn6ZG4AOyvCqFF/hUh6+A==", + "requires": { + "@babel/helper-hoist-variables": "^7.13.0", + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-validator-identifier": "^7.12.11", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.13.0.tgz", + "integrity": "sha512-D/ILzAh6uyvkWjKKyFE/W0FzWwasv6vPTSqPcjxFqn6QpX3u8DjRVliq4F2BamO2Wee/om06Vyy+vPkNrd4wxw==", + "requires": { + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.13.tgz", + "integrity": "sha512-Xsm8P2hr5hAxyYblrfACXpQKdQbx4m2df9/ZZSQ8MAhsadw06+jW7s9zsSw6he+mJZXRlVMyEnVktJo4zjk1WA==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.13" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.13.tgz", + "integrity": "sha512-/KY2hbLxrG5GTQ9zzZSc3xWiOy379pIETEhbtzwZcw9rvuaVV4Fqy7BYGYOWZnaoXIQYbbJ0ziXLa/sKcGCYEQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.13.tgz", + "integrity": "sha512-JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/helper-replace-supers": "^7.12.13" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.13.0.tgz", + "integrity": "sha512-Jt8k/h/mIwE2JFEOb3lURoY5C85ETcYPnbuAJ96zRBzh1XHtQZfs62ChZ6EP22QlC8c7Xqr9q+e1SU5qttwwjw==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.13.tgz", + "integrity": "sha512-nqVigwVan+lR+g8Fj8Exl0UQX2kymtjcWfMOYM1vTYEKujeyv2SkMgazf2qNcK7l4SDiKyTA/nHCPqL4e2zo1A==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-react-constant-elements": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.13.10.tgz", + "integrity": "sha512-E+aCW9j7mLq01tOuGV08YzLBt+vSyr4bOPT75B6WrAlrUfmOYOZ/yWk847EH0dv0xXiCihWLEmlX//O30YhpIw==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-transform-react-display-name": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.13.tgz", + "integrity": "sha512-MprESJzI9O5VnJZrL7gg1MpdqmiFcUv41Jc7SahxYsNP2kDkFqClxxTZq+1Qv4AFCamm+GXMRDQINNn+qrxmiA==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-react-jsx": { + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.17.tgz", + "integrity": "sha512-mwaVNcXV+l6qJOuRhpdTEj8sT/Z0owAVWf9QujTZ0d2ye9X/K+MTOTSizcgKOj18PGnTc/7g1I4+cIUjsKhBcw==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.12.13", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/plugin-syntax-jsx": "^7.12.13", + "@babel/types": "^7.12.17" + } + }, + "@babel/plugin-transform-react-jsx-development": { + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.12.17.tgz", + "integrity": "sha512-BPjYV86SVuOaudFhsJR1zjgxxOhJDt6JHNoD48DxWEIxUCAMjV1ys6DYw4SDYZh0b1QsS2vfIA9t/ZsQGsDOUQ==", + "requires": { + "@babel/plugin-transform-react-jsx": "^7.12.17" + } + }, + "@babel/plugin-transform-react-jsx-self": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.12.13.tgz", + "integrity": "sha512-FXYw98TTJ125GVCCkFLZXlZ1qGcsYqNQhVBQcZjyrwf8FEUtVfKIoidnO8S0q+KBQpDYNTmiGo1gn67Vti04lQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-react-jsx-source": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.12.13.tgz", + "integrity": "sha512-O5JJi6fyfih0WfDgIJXksSPhGP/G0fQpfxYy87sDc+1sFmsCS6wr3aAn+whbzkhbjtq4VMqLRaSzR6IsshIC0Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-react-pure-annotations": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.12.1.tgz", + "integrity": "sha512-RqeaHiwZtphSIUZ5I85PEH19LOSzxfuEazoY7/pWASCAIBuATQzpSVD+eT6MebeeZT2F4eSL0u4vw6n4Nm0Mjg==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.13.tgz", + "integrity": "sha512-lxb2ZAvSLyJ2PEe47hoGWPmW22v7CtSl9jW8mingV4H2sEX/JOcrAj2nPuGWi56ERUm2bUpjKzONAuT6HCn2EA==", + "requires": { + "regenerator-transform": "^0.14.2" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.13.tgz", + "integrity": "sha512-xhUPzDXxZN1QfiOy/I5tyye+TRz6lA7z6xaT4CLOjPRMVg1ldRf0LHw0TDBpYL4vG78556WuHdyO9oi5UmzZBg==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-runtime": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.12.1.tgz", + "integrity": "sha512-Ac/H6G9FEIkS2tXsZjL4RAdS3L3WHxci0usAnz7laPWUmFiGtj7tIASChqKZMHTSQTQY6xDbOq+V1/vIq3QrWg==", + "requires": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "resolve": "^1.8.1", + "semver": "^5.5.1" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.13.tgz", + "integrity": "sha512-xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.13.0.tgz", + "integrity": "sha512-V6vkiXijjzYeFmQTr3dBxPtZYLPcUfY34DebOU27jIl2M/Y8Egm52Hw82CSjjPqd54GTlJs5x+CR7HeNr24ckg==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.13.tgz", + "integrity": "sha512-Jc3JSaaWT8+fr7GRvQP02fKDsYk4K/lYwWq38r/UGfaxo89ajud321NH28KRQ7xy1Ybc0VUE5Pz8psjNNDUglg==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.13.0.tgz", + "integrity": "sha512-d67umW6nlfmr1iehCcBv69eSUSySk1EsIS8aTDX4Xo9qajAh6mYtcl4kJrBkGXuxZPEgVr7RVfAvNW6YQkd4Mw==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.13.tgz", + "integrity": "sha512-eKv/LmUJpMnu4npgfvs3LiHhJua5fo/CysENxa45YCQXZwKnGCQKAg87bvoqSW1fFT+HA32l03Qxsm8ouTY3ZQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-typescript": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.13.0.tgz", + "integrity": "sha512-elQEwluzaU8R8dbVuW2Q2Y8Nznf7hnjM7+DSCd14Lo5fF63C9qNLbwZYbmZrtV9/ySpSUpkRpQXvJb6xyu4hCQ==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-typescript": "^7.12.13" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.13.tgz", + "integrity": "sha512-0bHEkdwJ/sN/ikBHfSmOXPypN/beiGqjo+o4/5K+vxEFNPRPdImhviPakMKG4x96l85emoa0Z6cDflsdBusZbw==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.13.tgz", + "integrity": "sha512-mDRzSNY7/zopwisPZ5kM9XKCfhchqIYwAKRERtEnhYscZB79VRekuRSoYbN0+KVe3y8+q1h6A4svXtP7N+UoCA==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/preset-env": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.13.10.tgz", + "integrity": "sha512-nOsTScuoRghRtUsRr/c69d042ysfPHcu+KOB4A9aAO9eJYqrkat+LF8G1yp1HD18QiwixT2CisZTr/0b3YZPXQ==", + "requires": { + "@babel/compat-data": "^7.13.8", + "@babel/helper-compilation-targets": "^7.13.10", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-validator-option": "^7.12.17", + "@babel/plugin-proposal-async-generator-functions": "^7.13.8", + "@babel/plugin-proposal-class-properties": "^7.13.0", + "@babel/plugin-proposal-dynamic-import": "^7.13.8", + "@babel/plugin-proposal-export-namespace-from": "^7.12.13", + "@babel/plugin-proposal-json-strings": "^7.13.8", + "@babel/plugin-proposal-logical-assignment-operators": "^7.13.8", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.13.8", + "@babel/plugin-proposal-numeric-separator": "^7.12.13", + "@babel/plugin-proposal-object-rest-spread": "^7.13.8", + "@babel/plugin-proposal-optional-catch-binding": "^7.13.8", + "@babel/plugin-proposal-optional-chaining": "^7.13.8", + "@babel/plugin-proposal-private-methods": "^7.13.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.12.13", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.12.13", + "@babel/plugin-transform-arrow-functions": "^7.13.0", + "@babel/plugin-transform-async-to-generator": "^7.13.0", + "@babel/plugin-transform-block-scoped-functions": "^7.12.13", + "@babel/plugin-transform-block-scoping": "^7.12.13", + "@babel/plugin-transform-classes": "^7.13.0", + "@babel/plugin-transform-computed-properties": "^7.13.0", + "@babel/plugin-transform-destructuring": "^7.13.0", + "@babel/plugin-transform-dotall-regex": "^7.12.13", + "@babel/plugin-transform-duplicate-keys": "^7.12.13", + "@babel/plugin-transform-exponentiation-operator": "^7.12.13", + "@babel/plugin-transform-for-of": "^7.13.0", + "@babel/plugin-transform-function-name": "^7.12.13", + "@babel/plugin-transform-literals": "^7.12.13", + "@babel/plugin-transform-member-expression-literals": "^7.12.13", + "@babel/plugin-transform-modules-amd": "^7.13.0", + "@babel/plugin-transform-modules-commonjs": "^7.13.8", + "@babel/plugin-transform-modules-systemjs": "^7.13.8", + "@babel/plugin-transform-modules-umd": "^7.13.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.13", + "@babel/plugin-transform-new-target": "^7.12.13", + "@babel/plugin-transform-object-super": "^7.12.13", + "@babel/plugin-transform-parameters": "^7.13.0", + "@babel/plugin-transform-property-literals": "^7.12.13", + "@babel/plugin-transform-regenerator": "^7.12.13", + "@babel/plugin-transform-reserved-words": "^7.12.13", + "@babel/plugin-transform-shorthand-properties": "^7.12.13", + "@babel/plugin-transform-spread": "^7.13.0", + "@babel/plugin-transform-sticky-regex": "^7.12.13", + "@babel/plugin-transform-template-literals": "^7.13.0", + "@babel/plugin-transform-typeof-symbol": "^7.12.13", + "@babel/plugin-transform-unicode-escapes": "^7.12.13", + "@babel/plugin-transform-unicode-regex": "^7.12.13", + "@babel/preset-modules": "^0.1.4", + "@babel/types": "^7.13.0", + "babel-plugin-polyfill-corejs2": "^0.1.4", + "babel-plugin-polyfill-corejs3": "^0.1.3", + "babel-plugin-polyfill-regenerator": "^0.1.2", + "core-js-compat": "^3.9.0", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "@babel/preset-modules": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz", + "integrity": "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==", + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/preset-react": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.12.13.tgz", + "integrity": "sha512-TYM0V9z6Abb6dj1K7i5NrEhA13oS5ujUYQYDfqIBXYHOc2c2VkFgc+q9kyssIyUfy4/hEwqrgSlJ/Qgv8zJLsA==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/plugin-transform-react-display-name": "^7.12.13", + "@babel/plugin-transform-react-jsx": "^7.12.13", + "@babel/plugin-transform-react-jsx-development": "^7.12.12", + "@babel/plugin-transform-react-pure-annotations": "^7.12.1" + } + }, + "@babel/preset-typescript": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.12.1.tgz", + "integrity": "sha512-hNK/DhmoJPsksdHuI/RVrcEws7GN5eamhi28JkO52MqIxU8Z0QpmiSOQxZHWOHV7I3P4UjHV97ay4TcamMA6Kw==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-transform-typescript": "^7.12.1" + } + }, + "@babel/runtime": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", + "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/runtime-corejs3": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.13.10.tgz", + "integrity": "sha512-x/XYVQ1h684pp1mJwOV4CyvqZXqbc8CMsMGUnAbuc82ZCdv1U63w5RSUzgDSXQHG5Rps/kiksH6g2D5BuaKyXg==", + "requires": { + "core-js-pure": "^3.0.0", + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/template": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", + "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/traverse": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.0.tgz", + "integrity": "sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ==", + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.13.0", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.13.0", + "@babel/types": "^7.13.0", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + } + }, + "@babel/types": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz", + "integrity": "sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA==", + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" + }, + "@cnakazawa/watch": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", + "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", + "requires": { + "exec-sh": "^0.3.2", + "minimist": "^1.2.0" + } + }, + "@csstools/convert-colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@csstools/convert-colors/-/convert-colors-1.4.0.tgz", + "integrity": "sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw==" + }, + "@csstools/normalize.css": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-10.1.0.tgz", + "integrity": "sha512-ij4wRiunFfaJxjB0BdrYHIH8FxBJpOwNPhhAcunlmPdXudL1WQV1qoP9un6JsEBAgQH+7UXyyjh0g7jTxXK6tg==" + }, + "@eslint/eslintrc": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.0.tgz", + "integrity": "sha512-2ZPCc+uNbjV5ERJr+aKSPRwZgKd2z11x0EgLvb1PURmUrn9QNRXFqje0Ldq454PfAVyaJYyrDvvIKSFP4NnBog==", + "requires": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "globals": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "requires": { + "type-fest": "^0.8.1" + } + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==" + } + } + }, + "@hapi/address": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz", + "integrity": "sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==" + }, + "@hapi/bourne": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-1.3.2.tgz", + "integrity": "sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==" + }, + "@hapi/hoek": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz", + "integrity": "sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==" + }, + "@hapi/joi": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz", + "integrity": "sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==", + "requires": { + "@hapi/address": "2.x.x", + "@hapi/bourne": "1.x.x", + "@hapi/hoek": "8.x.x", + "@hapi/topo": "3.x.x" + } + }, + "@hapi/topo": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz", + "integrity": "sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==", + "requires": { + "@hapi/hoek": "^8.3.0" + } + }, + "@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "requires": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" + } + } + }, + "@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==" + }, + "@jest/console": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-26.6.2.tgz", + "integrity": "sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g==", + "requires": { + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^26.6.2", + "jest-util": "^26.6.2", + "slash": "^3.0.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "@jest/core": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-26.6.3.tgz", + "integrity": "sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw==", + "requires": { + "@jest/console": "^26.6.2", + "@jest/reporters": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/transform": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "jest-changed-files": "^26.6.2", + "jest-config": "^26.6.3", + "jest-haste-map": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-regex-util": "^26.0.0", + "jest-resolve": "^26.6.2", + "jest-resolve-dependencies": "^26.6.3", + "jest-runner": "^26.6.3", + "jest-runtime": "^26.6.3", + "jest-snapshot": "^26.6.2", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "jest-watcher": "^26.6.2", + "micromatch": "^4.0.2", + "p-each-series": "^2.1.0", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "jest-resolve": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz", + "integrity": "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==", + "requires": { + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^26.6.2", + "read-pkg-up": "^7.0.1", + "resolve": "^1.18.1", + "slash": "^3.0.0" + } + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==" + } + } + }, + "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==", + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + } + } + } + }, + "@jest/environment": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-26.6.2.tgz", + "integrity": "sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA==", + "requires": { + "@jest/fake-timers": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "jest-mock": "^26.6.2" + } + }, + "@jest/fake-timers": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.6.2.tgz", + "integrity": "sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA==", + "requires": { + "@jest/types": "^26.6.2", + "@sinonjs/fake-timers": "^6.0.1", + "@types/node": "*", + "jest-message-util": "^26.6.2", + "jest-mock": "^26.6.2", + "jest-util": "^26.6.2" + } + }, + "@jest/globals": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-26.6.2.tgz", + "integrity": "sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA==", + "requires": { + "@jest/environment": "^26.6.2", + "@jest/types": "^26.6.2", + "expect": "^26.6.2" + } + }, + "@jest/reporters": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-26.6.2.tgz", + "integrity": "sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw==", + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/transform": "^26.6.2", + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.4", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^4.0.3", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "jest-haste-map": "^26.6.2", + "jest-resolve": "^26.6.2", + "jest-util": "^26.6.2", + "jest-worker": "^26.6.2", + "node-notifier": "^8.0.0", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^7.0.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "jest-resolve": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz", + "integrity": "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==", + "requires": { + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^26.6.2", + "read-pkg-up": "^7.0.1", + "resolve": "^1.18.1", + "slash": "^3.0.0" + } + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==" + } + } + }, + "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==", + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + } + } + } + }, + "@jest/source-map": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-26.6.2.tgz", + "integrity": "sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA==", + "requires": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.4", + "source-map": "^0.6.0" + } + }, + "@jest/test-result": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-26.6.2.tgz", + "integrity": "sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==", + "requires": { + "@jest/console": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/test-sequencer": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz", + "integrity": "sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw==", + "requires": { + "@jest/test-result": "^26.6.2", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^26.6.2", + "jest-runner": "^26.6.3", + "jest-runtime": "^26.6.3" + } + }, + "@jest/transform": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-26.6.2.tgz", + "integrity": "sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==", + "requires": { + "@babel/core": "^7.1.0", + "@jest/types": "^26.6.2", + "babel-plugin-istanbul": "^6.0.0", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^26.6.2", + "jest-regex-util": "^26.0.0", + "jest-util": "^26.6.2", + "micromatch": "^4.0.2", + "pirates": "^4.0.1", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", + "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==", + "requires": { + "@nodelib/fs.stat": "2.0.4", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz", + "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==" + }, + "@nodelib/fs.walk": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz", + "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==", + "requires": { + "@nodelib/fs.scandir": "2.1.4", + "fastq": "^1.6.0" + } + }, + "@npmcli/move-file": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "requires": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + } + } + }, + "@pmmmwh/react-refresh-webpack-plugin": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.4.2.tgz", + "integrity": "sha512-Loc4UDGutcZ+Bd56hBInkm6JyjyCwWy4t2wcDXzN8EDPANgVRj0VP8Nxn0Zq2pc+WKauZwEivQgbDGg4xZO20A==", + "requires": { + "ansi-html": "^0.0.7", + "error-stack-parser": "^2.0.6", + "html-entities": "^1.2.1", + "native-url": "^0.2.6", + "schema-utils": "^2.6.5", + "source-map": "^0.7.3" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" + } + } + }, + "@rollup/plugin-node-resolve": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.3.tgz", + "integrity": "sha512-RxtSL3XmdTAE2byxekYLnx+98kEUOrPHF/KRVjLH+DEIHy6kjIw7YINQzn+NXiH/NTrQLAwYs0GWB+csWygA9Q==", + "requires": { + "@rollup/pluginutils": "^3.0.8", + "@types/resolve": "0.0.8", + "builtin-modules": "^3.1.0", + "is-module": "^1.0.0", + "resolve": "^1.14.2" + } + }, + "@rollup/plugin-replace": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.1.tgz", + "integrity": "sha512-XwC1oK5rrtRJ0tn1ioLHS6OV5JTluJF7QE1J/q1hN3bquwjnVxjtMyY9iCnoyH9DQbf92CxajB3o98wZbP3oAQ==", + "requires": { + "@rollup/pluginutils": "^3.1.0", + "magic-string": "^0.25.7" + } + }, + "@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "requires": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "dependencies": { + "@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" + } + } + }, + "@sinonjs/commons": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.2.tgz", + "integrity": "sha512-sruwd86RJHdsVf/AtBoijDmUqJp3B6hF/DGC23C+JaegnDHaZyewCjoVGTdg3J0uz3Zs7NnIT05OBOmML72lQw==", + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/fake-timers": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", + "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", + "requires": { + "@sinonjs/commons": "^1.7.0" + } + }, + "@surma/rollup-plugin-off-main-thread": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-1.4.2.tgz", + "integrity": "sha512-yBMPqmd1yEJo/280PAMkychuaALyQ9Lkb5q1ck3mjJrFuEobIfhnQ4J3mbvBoISmR3SWMWV+cGB/I0lCQee79A==", + "requires": { + "ejs": "^2.6.1", + "magic-string": "^0.25.0" + } + }, + "@svgr/babel-plugin-add-jsx-attribute": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz", + "integrity": "sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg==" + }, + "@svgr/babel-plugin-remove-jsx-attribute": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz", + "integrity": "sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg==" + }, + "@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz", + "integrity": "sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA==" + }, + "@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz", + "integrity": "sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ==" + }, + "@svgr/babel-plugin-svg-dynamic-title": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz", + "integrity": "sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg==" + }, + "@svgr/babel-plugin-svg-em-dimensions": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz", + "integrity": "sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw==" + }, + "@svgr/babel-plugin-transform-react-native-svg": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz", + "integrity": "sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q==" + }, + "@svgr/babel-plugin-transform-svg-component": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz", + "integrity": "sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ==" + }, + "@svgr/babel-preset": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-5.5.0.tgz", + "integrity": "sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig==", + "requires": { + "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0", + "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "^5.0.1", + "@svgr/babel-plugin-replace-jsx-attribute-value": "^5.0.1", + "@svgr/babel-plugin-svg-dynamic-title": "^5.4.0", + "@svgr/babel-plugin-svg-em-dimensions": "^5.4.0", + "@svgr/babel-plugin-transform-react-native-svg": "^5.4.0", + "@svgr/babel-plugin-transform-svg-component": "^5.5.0" + } + }, + "@svgr/core": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-5.5.0.tgz", + "integrity": "sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ==", + "requires": { + "@svgr/plugin-jsx": "^5.5.0", + "camelcase": "^6.2.0", + "cosmiconfig": "^7.0.0" + } + }, + "@svgr/hast-util-to-babel-ast": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz", + "integrity": "sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ==", + "requires": { + "@babel/types": "^7.12.6" + } + }, + "@svgr/plugin-jsx": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz", + "integrity": "sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA==", + "requires": { + "@babel/core": "^7.12.3", + "@svgr/babel-preset": "^5.5.0", + "@svgr/hast-util-to-babel-ast": "^5.5.0", + "svg-parser": "^2.0.2" + } + }, + "@svgr/plugin-svgo": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz", + "integrity": "sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ==", + "requires": { + "cosmiconfig": "^7.0.0", + "deepmerge": "^4.2.2", + "svgo": "^1.2.2" + } + }, + "@svgr/webpack": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.4.0.tgz", + "integrity": "sha512-LjepnS/BSAvelnOnnzr6Gg0GcpLmnZ9ThGFK5WJtm1xOqdBE/1IACZU7MMdVzjyUkfFqGz87eRE4hFaSLiUwYg==", + "requires": { + "@babel/core": "^7.9.0", + "@babel/plugin-transform-react-constant-elements": "^7.9.0", + "@babel/preset-env": "^7.9.5", + "@babel/preset-react": "^7.9.4", + "@svgr/core": "^5.4.0", + "@svgr/plugin-jsx": "^5.4.0", + "@svgr/plugin-svgo": "^5.4.0", + "loader-utils": "^2.0.0" + } + }, + "@testing-library/dom": { + "version": "7.30.0", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-7.30.0.tgz", + "integrity": "sha512-v4GzWtltaiDE0yRikLlcLAfEiiK8+ptu6OuuIebm9GdC2XlZTNDPGEfM2UkEtnH7hr9TRq2sivT5EA9P1Oy7bw==", + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^4.2.0", + "aria-query": "^4.2.2", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.4", + "lz-string": "^1.4.4", + "pretty-format": "^26.6.2" + }, + "dependencies": { + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "@testing-library/jest-dom": { + "version": "5.11.9", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.11.9.tgz", + "integrity": "sha512-Mn2gnA9d1wStlAIT2NU8J15LNob0YFBVjs2aEQ3j8rsfRQo+lAs7/ui1i2TGaJjapLmuNPLTsrm+nPjmZDwpcQ==", + "requires": { + "@babel/runtime": "^7.9.2", + "@types/testing-library__jest-dom": "^5.9.1", + "aria-query": "^4.2.2", + "chalk": "^3.0.0", + "css": "^3.0.0", + "css.escape": "^1.5.1", + "lodash": "^4.17.15", + "redent": "^3.0.0" + } + }, + "@testing-library/react": { + "version": "11.2.5", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-11.2.5.tgz", + "integrity": "sha512-yEx7oIa/UWLe2F2dqK0FtMF9sJWNXD+2PPtp39BvE0Kh9MJ9Kl0HrZAgEuhUJR+Lx8Di6Xz+rKwSdEPY2UV8ZQ==", + "requires": { + "@babel/runtime": "^7.12.5", + "@testing-library/dom": "^7.28.1" + } + }, + "@testing-library/user-event": { + "version": "12.8.3", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-12.8.3.tgz", + "integrity": "sha512-IR0iWbFkgd56Bu5ZI/ej8yQwrkCv8Qydx6RzwbKz9faXazR/+5tvYKsZQgyXJiwgpcva127YO6JcWy7YlCfofQ==", + "requires": { + "@babel/runtime": "^7.12.5" + } + }, + "@types/anymatch": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@types/anymatch/-/anymatch-1.3.1.tgz", + "integrity": "sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA==" + }, + "@types/aria-query": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.1.tgz", + "integrity": "sha512-S6oPal772qJZHoRZLFc/XoZW2gFvwXusYUmXPXkgxJLuEk2vOt7jc4Yo6z/vtI0EBkbPBVrJJ0B+prLIKiWqHg==" + }, + "@types/babel__core": { + "version": "7.1.13", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.13.tgz", + "integrity": "sha512-CC6amBNND16pTk4K3ZqKIaba6VGKAQs3gMjEY17FVd56oI/ZWt9OhS6riYiWv9s8ENbYUi7p8lgqb0QHQvUKQQ==", + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "@types/babel__generator": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.2.tgz", + "integrity": "sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ==", + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@types/babel__template": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.0.tgz", + "integrity": "sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A==", + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@types/babel__traverse": { + "version": "7.11.1", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.11.1.tgz", + "integrity": "sha512-Vs0hm0vPahPMYi9tDjtP66llufgO3ST16WXaSTtDGEl9cewAl3AibmxWw6TINOqHPT9z0uABKAYjT9jNSg4npw==", + "requires": { + "@babel/types": "^7.3.0" + } + }, + "@types/eslint": { + "version": "7.2.7", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.7.tgz", + "integrity": "sha512-EHXbc1z2GoQRqHaAT7+grxlTJ3WE2YNeD6jlpPoRc83cCoThRY+NUWjCUZaYmk51OICkPXn2hhphcWcWXgNW0Q==", + "requires": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "@types/estree": { + "version": "0.0.46", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.46.tgz", + "integrity": "sha512-laIjwTQaD+5DukBZaygQ79K1Z0jb1bPEMRrkXSLjtCcZm+abyp5YbrqpSLzD42FwWW6gK/aS4NYpJ804nG2brg==" + }, + "@types/glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/graceful-fs": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", + "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "requires": { + "@types/node": "*" + } + }, + "@types/html-minifier-terser": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz", + "integrity": "sha512-giAlZwstKbmvMk1OO7WXSj4OZ0keXAcl2TQq4LWHiiPH2ByaH7WeUzng+Qej8UPxxv+8lRTuouo0iaNDBuzIBA==" + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", + "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==" + }, + "@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@types/istanbul-reports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", + "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/jest": { + "version": "26.0.21", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.21.tgz", + "integrity": "sha512-ab9TyM/69yg7eew9eOwKMUmvIZAKEGZYlq/dhe5/0IMUd/QLJv5ldRMdddSn+u22N13FP3s5jYyktxuBwY0kDA==", + "requires": { + "jest-diff": "^26.0.0", + "pretty-format": "^26.0.0" + } + }, + "@types/json-schema": { + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", + "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==" + }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=" + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==" + }, + "@types/node": { + "version": "14.14.35", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.35.tgz", + "integrity": "sha512-Lt+wj8NVPx0zUmUwumiVXapmaLUcAk3yPuHCFVXras9k5VT9TdhJqKqGVUQCD60OTMCl0qxJ57OiTL0Mic3Iag==" + }, + "@types/normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==" + }, + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" + }, + "@types/prettier": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.2.3.tgz", + "integrity": "sha512-PijRCG/K3s3w1We6ynUKdxEc5AcuuH3NBmMDP8uvKVp6X43UY7NQlTzczakXP3DJR0F4dfNQIGjU2cUeRYs2AA==" + }, + "@types/q": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", + "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==" + }, + "@types/resolve": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz", + "integrity": "sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==", + "requires": { + "@types/node": "*" + } + }, + "@types/source-list-map": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz", + "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==" + }, + "@types/stack-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.0.tgz", + "integrity": "sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw==" + }, + "@types/tapable": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.6.tgz", + "integrity": "sha512-W+bw9ds02rAQaMvaLYxAbJ6cvguW/iJXNT6lTssS1ps6QdrMKttqEAMEG/b5CR8TZl3/L7/lH0ZV5nNR1LXikA==" + }, + "@types/testing-library__jest-dom": { + "version": "5.9.5", + "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.9.5.tgz", + "integrity": "sha512-ggn3ws+yRbOHog9GxnXiEZ/35Mow6YtPZpd7Z5mKDeZS/o7zx3yAle0ov/wjhVB5QT4N2Dt+GNoGCdqkBGCajQ==", + "requires": { + "@types/jest": "*" + } + }, + "@types/uglify-js": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.13.0.tgz", + "integrity": "sha512-EGkrJD5Uy+Pg0NUR8uA4bJ5WMfljyad0G+784vLCNUkD+QwOJXUbBYExXfVGf7YtyzdQp3L/XMYcliB987kL5Q==", + "requires": { + "source-map": "^0.6.1" + } + }, + "@types/webpack": { + "version": "4.41.26", + "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.26.tgz", + "integrity": "sha512-7ZyTfxjCRwexh+EJFwRUM+CDB2XvgHl4vfuqf1ZKrgGvcS5BrNvPQqJh3tsZ0P6h6Aa1qClVHaJZszLPzpqHeA==", + "requires": { + "@types/anymatch": "*", + "@types/node": "*", + "@types/tapable": "*", + "@types/uglify-js": "*", + "@types/webpack-sources": "*", + "source-map": "^0.6.0" + } + }, + "@types/webpack-sources": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-2.1.0.tgz", + "integrity": "sha512-LXn/oYIpBeucgP1EIJbKQ2/4ZmpvRl+dlrFdX7+94SKRUV3Evy3FsfMZY318vGhkWUS5MPhtOM3w1/hCOAOXcg==", + "requires": { + "@types/node": "*", + "@types/source-list-map": "*", + "source-map": "^0.7.3" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" + } + } + }, + "@types/yargs": { + "version": "15.0.13", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.13.tgz", + "integrity": "sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ==", + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "20.2.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz", + "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==" + }, + "@typescript-eslint/eslint-plugin": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.18.0.tgz", + "integrity": "sha512-Lzkc/2+7EoH7+NjIWLS2lVuKKqbEmJhtXe3rmfA8cyiKnZm3IfLf51irnBcmow8Q/AptVV0XBZmBJKuUJTe6cQ==", + "requires": { + "@typescript-eslint/experimental-utils": "4.18.0", + "@typescript-eslint/scope-manager": "4.18.0", + "debug": "^4.1.1", + "functional-red-black-tree": "^1.0.1", + "lodash": "^4.17.15", + "regexpp": "^3.0.0", + "semver": "^7.3.2", + "tsutils": "^3.17.1" + } + }, + "@typescript-eslint/experimental-utils": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.18.0.tgz", + "integrity": "sha512-92h723Kblt9JcT2RRY3QS2xefFKar4ZQFVs3GityOKWQYgtajxt/tuXIzL7sVCUlM1hgreiV5gkGYyBpdOwO6A==", + "requires": { + "@types/json-schema": "^7.0.3", + "@typescript-eslint/scope-manager": "4.18.0", + "@typescript-eslint/types": "4.18.0", + "@typescript-eslint/typescript-estree": "4.18.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^2.0.0" + } + }, + "@typescript-eslint/parser": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.18.0.tgz", + "integrity": "sha512-W3z5S0ZbecwX3PhJEAnq4mnjK5JJXvXUDBYIYGoweCyWyuvAKfGHvzmpUzgB5L4cRBb+cTu9U/ro66dx7dIimA==", + "requires": { + "@typescript-eslint/scope-manager": "4.18.0", + "@typescript-eslint/types": "4.18.0", + "@typescript-eslint/typescript-estree": "4.18.0", + "debug": "^4.1.1" + } + }, + "@typescript-eslint/scope-manager": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.18.0.tgz", + "integrity": "sha512-olX4yN6rvHR2eyFOcb6E4vmhDPsfdMyfQ3qR+oQNkAv8emKKlfxTWUXU5Mqxs2Fwe3Pf1BoPvrwZtwngxDzYzQ==", + "requires": { + "@typescript-eslint/types": "4.18.0", + "@typescript-eslint/visitor-keys": "4.18.0" + } + }, + "@typescript-eslint/types": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.18.0.tgz", + "integrity": "sha512-/BRociARpj5E+9yQ7cwCF/SNOWwXJ3qhjurMuK2hIFUbr9vTuDeu476Zpu+ptxY2kSxUHDGLLKy+qGq2sOg37A==" + }, + "@typescript-eslint/typescript-estree": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.18.0.tgz", + "integrity": "sha512-wt4xvF6vvJI7epz+rEqxmoNQ4ZADArGQO9gDU+cM0U5fdVv7N+IAuVoVAoZSOZxzGHBfvE3XQMLdy+scsqFfeg==", + "requires": { + "@typescript-eslint/types": "4.18.0", + "@typescript-eslint/visitor-keys": "4.18.0", + "debug": "^4.1.1", + "globby": "^11.0.1", + "is-glob": "^4.0.1", + "semver": "^7.3.2", + "tsutils": "^3.17.1" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.18.0.tgz", + "integrity": "sha512-Q9t90JCvfYaN0OfFUgaLqByOfz8yPeTAdotn/XYNm5q9eHax90gzdb+RJ6E9T5s97Kv/UHWKERTmqA0jTKAEHw==", + "requires": { + "@typescript-eslint/types": "4.18.0", + "eslint-visitor-keys": "^2.0.0" + } + }, + "@webassemblyjs/ast": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", + "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "requires": { + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", + "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==" + }, + "@webassemblyjs/helper-api-error": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", + "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==" + }, + "@webassemblyjs/helper-buffer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", + "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==" + }, + "@webassemblyjs/helper-code-frame": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", + "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", + "requires": { + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/helper-fsm": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", + "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==" + }, + "@webassemblyjs/helper-module-context": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", + "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", + "requires": { + "@webassemblyjs/ast": "1.9.0" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", + "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==" + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", + "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", + "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", + "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", + "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==" + }, + "@webassemblyjs/wasm-edit": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", + "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/helper-wasm-section": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-opt": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", + "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", + "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", + "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "@webassemblyjs/wast-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", + "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/floating-point-hex-parser": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-code-frame": "1.9.0", + "@webassemblyjs/helper-fsm": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", + "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" + }, + "abab": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", + "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==" + }, + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" + }, + "acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "requires": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + } + }, + "acorn-jsx": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", + "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==" + }, + "acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==" + }, + "address": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/address/-/address-1.1.2.tgz", + "integrity": "sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA==" + }, + "adjust-sourcemap-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-3.0.0.tgz", + "integrity": "sha512-YBrGyT2/uVQ/c6Rr+t6ZJXniY03YtHGMJQYal368burRGYKqhx9qGTWqcBU5s1CwYY9E/ri63RYyG1IacMZtqw==", + "requires": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + } + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==" + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==" + }, + "alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=" + }, + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==" + }, + "ansi-escapes": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "requires": { + "type-fest": "^0.11.0" + }, + "dependencies": { + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==" + } + } + }, + "ansi-html": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", + "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=" + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "aria-query": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", + "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", + "requires": { + "@babel/runtime": "^7.10.2", + "@babel/runtime-corejs3": "^7.10.2" + } + }, + "arity-n": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arity-n/-/arity-n-1.0.4.tgz", + "integrity": "sha1-2edrEXM+CFacCEeuezmyhgswt0U=" + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" + }, + "array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" + }, + "array-includes": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz", + "integrity": "sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.5" + } + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, + "array.prototype.flat": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", + "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + } + }, + "array.prototype.flatmap": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz", + "integrity": "sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1", + "function-bind": "^1.1.1" + } + }, + "arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==" + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "requires": { + "object-assign": "^4.1.1", + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "requires": { + "inherits": "2.0.1" + } + } + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + }, + "ast-types-flow": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=" + }, + "astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==" + }, + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "requires": { + "lodash": "^4.17.14" + } + }, + "async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==" + }, + "async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" + }, + "autoprefixer": { + "version": "9.8.6", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz", + "integrity": "sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==", + "requires": { + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001109", + "colorette": "^1.2.1", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^7.0.32", + "postcss-value-parser": "^4.1.0" + } + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" + }, + "aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" + }, + "axe-core": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.1.3.tgz", + "integrity": "sha512-vwPpH4Aj4122EW38mxO/fxhGKtwWTMLDIJfZ1He0Edbtjcfna/R3YB67yVhezUMzqc3Jr3+Ii50KRntlENL4xQ==" + }, + "axobject-query": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", + "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==" + }, + "babel-eslint": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz", + "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==", + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.7.0", + "@babel/traverse": "^7.7.0", + "@babel/types": "^7.7.0", + "eslint-visitor-keys": "^1.0.0", + "resolve": "^1.12.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==" + } + } + }, + "babel-extract-comments": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/babel-extract-comments/-/babel-extract-comments-1.0.0.tgz", + "integrity": "sha512-qWWzi4TlddohA91bFwgt6zO/J0X+io7Qp184Fw0m2JYRSTZnJbFR8+07KmzudHCZgOiKRCrjhylwv9Xd8gfhVQ==", + "requires": { + "babylon": "^6.18.0" + } + }, + "babel-jest": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-26.6.3.tgz", + "integrity": "sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==", + "requires": { + "@jest/transform": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/babel__core": "^7.1.7", + "babel-plugin-istanbul": "^6.0.0", + "babel-preset-jest": "^26.6.2", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "slash": "^3.0.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "babel-loader": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.1.0.tgz", + "integrity": "sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw==", + "requires": { + "find-cache-dir": "^2.1.0", + "loader-utils": "^1.4.0", + "mkdirp": "^0.5.3", + "pify": "^4.0.1", + "schema-utils": "^2.6.5" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + } + } + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "requires": { + "object.assign": "^4.1.0" + } + }, + "babel-plugin-istanbul": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz", + "integrity": "sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^4.0.0", + "test-exclude": "^6.0.0" + } + }, + "babel-plugin-jest-hoist": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz", + "integrity": "sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==", + "requires": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.0.0", + "@types/babel__traverse": "^7.0.6" + } + }, + "babel-plugin-macros": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz", + "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==", + "requires": { + "@babel/runtime": "^7.7.2", + "cosmiconfig": "^6.0.0", + "resolve": "^1.12.0" + }, + "dependencies": { + "cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + } + } + } + }, + "babel-plugin-named-asset-import": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.7.tgz", + "integrity": "sha512-squySRkf+6JGnvjoUtDEjSREJEBirnXi9NqP6rjSYsylxQxqBTz+pkmf395i9E2zsvmYUaI40BHo6SqZUdydlw==" + }, + "babel-plugin-polyfill-corejs2": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.1.10.tgz", + "integrity": "sha512-DO95wD4g0A8KRaHKi0D51NdGXzvpqVLnLu5BTvDlpqUEpTmeEtypgC1xqesORaWmiUOQI14UHKlzNd9iZ2G3ZA==", + "requires": { + "@babel/compat-data": "^7.13.0", + "@babel/helper-define-polyfill-provider": "^0.1.5", + "semver": "^6.1.1" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.1.7.tgz", + "integrity": "sha512-u+gbS9bbPhZWEeyy1oR/YaaSpod/KDT07arZHb80aTpl8H5ZBq+uN1nN9/xtX7jQyfLdPfoqI4Rue/MQSWJquw==", + "requires": { + "@babel/helper-define-polyfill-provider": "^0.1.5", + "core-js-compat": "^3.8.1" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.1.6.tgz", + "integrity": "sha512-OUrYG9iKPKz8NxswXbRAdSwF0GhRdIEMTloQATJi4bDuFqrXaXcCUT/VGNrr8pBcjMh1RxZ7Xt9cytVJTJfvMg==", + "requires": { + "@babel/helper-define-polyfill-provider": "^0.1.5" + } + }, + "babel-plugin-syntax-object-rest-spread": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", + "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=" + }, + "babel-plugin-transform-object-rest-spread": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", + "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", + "requires": { + "babel-plugin-syntax-object-rest-spread": "^6.8.0", + "babel-runtime": "^6.26.0" + } + }, + "babel-plugin-transform-react-remove-prop-types": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", + "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==" + }, + "babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "requires": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + } + }, + "babel-preset-jest": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz", + "integrity": "sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==", + "requires": { + "babel-plugin-jest-hoist": "^26.6.2", + "babel-preset-current-node-syntax": "^1.0.0" + } + }, + "babel-preset-react-app": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-10.0.0.tgz", + "integrity": "sha512-itL2z8v16khpuKutx5IH8UdCdSTuzrOhRFTEdIhveZ2i1iBKDrVE0ATa4sFVy+02GLucZNVBWtoarXBy0Msdpg==", + "requires": { + "@babel/core": "7.12.3", + "@babel/plugin-proposal-class-properties": "7.12.1", + "@babel/plugin-proposal-decorators": "7.12.1", + "@babel/plugin-proposal-nullish-coalescing-operator": "7.12.1", + "@babel/plugin-proposal-numeric-separator": "7.12.1", + "@babel/plugin-proposal-optional-chaining": "7.12.1", + "@babel/plugin-transform-flow-strip-types": "7.12.1", + "@babel/plugin-transform-react-display-name": "7.12.1", + "@babel/plugin-transform-runtime": "7.12.1", + "@babel/preset-env": "7.12.1", + "@babel/preset-react": "7.12.1", + "@babel/preset-typescript": "7.12.1", + "@babel/runtime": "7.12.1", + "babel-plugin-macros": "2.8.0", + "babel-plugin-transform-react-remove-prop-types": "0.4.24" + }, + "dependencies": { + "@babel/plugin-proposal-class-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz", + "integrity": "sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz", + "integrity": "sha512-nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.1.tgz", + "integrity": "sha512-MR7Ok+Af3OhNTCxYVjJZHS0t97ydnJZt/DbR4WISO39iDnhiD8XHrY12xuSJ90FFEGjir0Fzyyn7g/zY6hxbxA==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.1.tgz", + "integrity": "sha512-c2uRpY6WzaVDzynVY9liyykS+kVU+WRZPMPYpkelXH8KBt1oXoI89kPbZKKG/jDT5UK92FTW2fZkZaJhdiBabw==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", + "@babel/plugin-syntax-optional-chaining": "^7.8.0" + } + }, + "@babel/plugin-transform-react-display-name": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.1.tgz", + "integrity": "sha512-cAzB+UzBIrekfYxyLlFqf/OagTvHLcVBb5vpouzkYkBclRPraiygVnafvAoipErZLI8ANv8Ecn6E/m5qPXD26w==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/preset-env": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.12.1.tgz", + "integrity": "sha512-H8kxXmtPaAGT7TyBvSSkoSTUK6RHh61So05SyEbpmr0MCZrsNYn7mGMzzeYoOUCdHzww61k8XBft2TaES+xPLg==", + "requires": { + "@babel/compat-data": "^7.12.1", + "@babel/helper-compilation-targets": "^7.12.1", + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-validator-option": "^7.12.1", + "@babel/plugin-proposal-async-generator-functions": "^7.12.1", + "@babel/plugin-proposal-class-properties": "^7.12.1", + "@babel/plugin-proposal-dynamic-import": "^7.12.1", + "@babel/plugin-proposal-export-namespace-from": "^7.12.1", + "@babel/plugin-proposal-json-strings": "^7.12.1", + "@babel/plugin-proposal-logical-assignment-operators": "^7.12.1", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1", + "@babel/plugin-proposal-numeric-separator": "^7.12.1", + "@babel/plugin-proposal-object-rest-spread": "^7.12.1", + "@babel/plugin-proposal-optional-catch-binding": "^7.12.1", + "@babel/plugin-proposal-optional-chaining": "^7.12.1", + "@babel/plugin-proposal-private-methods": "^7.12.1", + "@babel/plugin-proposal-unicode-property-regex": "^7.12.1", + "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-class-properties": "^7.12.1", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.0", + "@babel/plugin-syntax-top-level-await": "^7.12.1", + "@babel/plugin-transform-arrow-functions": "^7.12.1", + "@babel/plugin-transform-async-to-generator": "^7.12.1", + "@babel/plugin-transform-block-scoped-functions": "^7.12.1", + "@babel/plugin-transform-block-scoping": "^7.12.1", + "@babel/plugin-transform-classes": "^7.12.1", + "@babel/plugin-transform-computed-properties": "^7.12.1", + "@babel/plugin-transform-destructuring": "^7.12.1", + "@babel/plugin-transform-dotall-regex": "^7.12.1", + "@babel/plugin-transform-duplicate-keys": "^7.12.1", + "@babel/plugin-transform-exponentiation-operator": "^7.12.1", + "@babel/plugin-transform-for-of": "^7.12.1", + "@babel/plugin-transform-function-name": "^7.12.1", + "@babel/plugin-transform-literals": "^7.12.1", + "@babel/plugin-transform-member-expression-literals": "^7.12.1", + "@babel/plugin-transform-modules-amd": "^7.12.1", + "@babel/plugin-transform-modules-commonjs": "^7.12.1", + "@babel/plugin-transform-modules-systemjs": "^7.12.1", + "@babel/plugin-transform-modules-umd": "^7.12.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.1", + "@babel/plugin-transform-new-target": "^7.12.1", + "@babel/plugin-transform-object-super": "^7.12.1", + "@babel/plugin-transform-parameters": "^7.12.1", + "@babel/plugin-transform-property-literals": "^7.12.1", + "@babel/plugin-transform-regenerator": "^7.12.1", + "@babel/plugin-transform-reserved-words": "^7.12.1", + "@babel/plugin-transform-shorthand-properties": "^7.12.1", + "@babel/plugin-transform-spread": "^7.12.1", + "@babel/plugin-transform-sticky-regex": "^7.12.1", + "@babel/plugin-transform-template-literals": "^7.12.1", + "@babel/plugin-transform-typeof-symbol": "^7.12.1", + "@babel/plugin-transform-unicode-escapes": "^7.12.1", + "@babel/plugin-transform-unicode-regex": "^7.12.1", + "@babel/preset-modules": "^0.1.3", + "@babel/types": "^7.12.1", + "core-js-compat": "^3.6.2", + "semver": "^5.5.0" + } + }, + "@babel/preset-react": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.12.1.tgz", + "integrity": "sha512-euCExymHCi0qB9u5fKw7rvlw7AZSjw/NaB9h7EkdTt5+yHRrXdiRTh7fkG3uBPpJg82CqLfp1LHLqWGSCrab+g==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-transform-react-display-name": "^7.12.1", + "@babel/plugin-transform-react-jsx": "^7.12.1", + "@babel/plugin-transform-react-jsx-development": "^7.12.1", + "@babel/plugin-transform-react-jsx-self": "^7.12.1", + "@babel/plugin-transform-react-jsx-source": "^7.12.1", + "@babel/plugin-transform-react-pure-annotations": "^7.12.1" + } + }, + "@babel/runtime": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.1.tgz", + "integrity": "sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + }, + "dependencies": { + "core-js": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==" + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + } + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=" + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "bfj": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/bfj/-/bfj-7.0.2.tgz", + "integrity": "sha512-+e/UqUzwmzJamNF50tBV6tZPTORow7gQ96iFow+8b562OdMpEK0BcJEq2OSPEDmAbSMBQ7PKZ87ubFkgxpYWgw==", + "requires": { + "bluebird": "^3.5.5", + "check-types": "^11.1.1", + "hoopy": "^0.1.4", + "tryer": "^1.0.1" + } + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "optional": true + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, + "bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" + }, + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "requires": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "dependencies": { + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" + } + } + }, + "bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "requires": { + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" + } + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + }, + "browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "requires": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "requires": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + } + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "requires": { + "pako": "~1.0.5" + } + }, + "browserslist": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", + "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", + "requires": { + "caniuse-lite": "^1.0.30001181", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.649", + "escalade": "^3.1.1", + "node-releases": "^1.1.70" + } + }, + "bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "requires": { + "node-int64": "^0.4.0" + } + }, + "buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + }, + "buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==" + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + }, + "builtin-modules": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", + "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==" + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" + }, + "cacache": { + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.5.tgz", + "integrity": "sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A==", + "requires": { + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.0", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + } + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "requires": { + "callsites": "^2.0.0" + }, + "dependencies": { + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=" + } + } + }, + "caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "requires": { + "caller-callsite": "^2.0.0" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" + }, + "camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "requires": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" + } + } + }, + "camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==" + }, + "caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "requires": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001202", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001202.tgz", + "integrity": "sha512-ZcijQNqrcF8JNLjzvEiXqX4JUYxoZa7Pvcsd9UD8Kz4TvhTonOSNRsK+qtvpVL4l6+T1Rh4LFtLfnNWg6BGWCQ==" + }, + "capture-exit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", + "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", + "requires": { + "rsvp": "^4.8.4" + } + }, + "case-sensitive-paths-webpack-plugin": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.3.0.tgz", + "integrity": "sha512-/4YgnZS8y1UXXmC02xD5rRrBEu6T5ub+mQHLNRj0fzTRbgdBYhsNo2V5EqwgqrExjxsjtF/OpAKAMkKsxbD5XQ==" + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==" + }, + "check-types": { + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.1.2.tgz", + "integrity": "sha512-tzWzvgePgLORb9/3a0YenggReLKAIb2owL03H2Xdoe5pKcUyWRSEQ8xfCar8t2SIAuEDwtmx2da1YB52YuHQMQ==" + }, + "chokidar": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", + "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", + "optional": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.3.1", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + } + }, + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" + }, + "chrome-trace-event": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", + "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", + "requires": { + "tslib": "^1.9.0" + } + }, + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "cjs-module-lexer": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz", + "integrity": "sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw==" + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "clean-css": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz", + "integrity": "sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==", + "requires": { + "source-map": "~0.6.0" + } + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "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==", + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + }, + "coa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "requires": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==" + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/color/-/color-3.1.3.tgz", + "integrity": "sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ==", + "requires": { + "color-convert": "^1.9.1", + "color-string": "^1.5.4" + }, + "dependencies": { + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + } + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "color-string": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.5.tgz", + "integrity": "sha512-jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg==", + "requires": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "colorette": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", + "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==" + }, + "common-tags": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz", + "integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==" + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + }, + "compose-function": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/compose-function/-/compose-function-3.0.3.tgz", + "integrity": "sha1-ntZ18TzFRQHTCVCkhv9qe6OrGF8=", + "requires": { + "arity-n": "^1.0.4" + } + }, + "compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "requires": { + "mime-db": ">= 1.43.0 < 2" + } + }, + "compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "confusing-browser-globals": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz", + "integrity": "sha512-gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA==" + }, + "connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==" + }, + "console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==" + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" + }, + "contains-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", + "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=" + }, + "content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "requires": { + "safe-buffer": "5.1.2" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + }, + "core-js": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.9.1.tgz", + "integrity": "sha512-gSjRvzkxQc1zjM/5paAmL4idJBFzuJoo+jDjF1tStYFMV2ERfD02HhahhCGXUyHxQRG4yFKVSdO6g62eoRMcDg==" + }, + "core-js-compat": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.9.1.tgz", + "integrity": "sha512-jXAirMQxrkbiiLsCx9bQPJFA6llDadKMpYrBJQJ3/c4/vsPP/fAf29h24tviRlvwUL6AmY5CHLu2GvjuYviQqA==", + "requires": { + "browserslist": "^4.16.3", + "semver": "7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==" + } + } + }, + "core-js-pure": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.9.1.tgz", + "integrity": "sha512-laz3Zx0avrw9a4QEIdmIblnVuJz8W51leY9iLThatCsFawWxC3sE4guASC78JbCin+DkwMpCdp1AVAuzL/GN7A==" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "cosmiconfig": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", + "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + } + }, + "create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "crypto-random-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", + "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=" + }, + "css": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", + "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", + "requires": { + "inherits": "^2.0.4", + "source-map": "^0.6.1", + "source-map-resolve": "^0.6.0" + } + }, + "css-blank-pseudo": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz", + "integrity": "sha512-LHz35Hr83dnFeipc7oqFDmsjHdljj3TQtxGGiNWSOsTLIAubSm4TEz8qCaKFpk7idaQ1GfWscF4E6mgpBysA1w==", + "requires": { + "postcss": "^7.0.5" + } + }, + "css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=" + }, + "css-declaration-sorter": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", + "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", + "requires": { + "postcss": "^7.0.1", + "timsort": "^0.3.0" + } + }, + "css-has-pseudo": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-0.10.0.tgz", + "integrity": "sha512-Z8hnfsZu4o/kt+AuFzeGpLVhFOGO9mluyHBaA2bA8aCGTwah5sT3WV/fTHH8UNZUytOIImuGPrl/prlb4oX4qQ==", + "requires": { + "postcss": "^7.0.6", + "postcss-selector-parser": "^5.0.0-rc.4" + }, + "dependencies": { + "cssesc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", + "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==" + }, + "postcss-selector-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", + "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", + "requires": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "css-loader": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-4.3.0.tgz", + "integrity": "sha512-rdezjCjScIrsL8BSYszgT4s476IcNKt6yX69t0pHjJVnPUTDpn4WfIpDQTN3wCJvUvfsz/mFjuGOekf3PY3NUg==", + "requires": { + "camelcase": "^6.0.0", + "cssesc": "^3.0.0", + "icss-utils": "^4.1.1", + "loader-utils": "^2.0.0", + "postcss": "^7.0.32", + "postcss-modules-extract-imports": "^2.0.0", + "postcss-modules-local-by-default": "^3.0.3", + "postcss-modules-scope": "^2.2.0", + "postcss-modules-values": "^3.0.0", + "postcss-value-parser": "^4.1.0", + "schema-utils": "^2.7.1", + "semver": "^7.3.2" + } + }, + "css-prefers-color-scheme": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-3.1.1.tgz", + "integrity": "sha512-MTu6+tMs9S3EUqzmqLXEcgNRbNkkD/TGFvowpeoWJn5Vfq7FMgsmRQs9X5NXAURiOBmOxm/lLjsDNXDE6k9bhg==", + "requires": { + "postcss": "^7.0.5" + } + }, + "css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "requires": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==" + }, + "css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", + "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", + "requires": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + } + }, + "css-what": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", + "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==" + }, + "css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=" + }, + "cssdb": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-4.4.0.tgz", + "integrity": "sha512-LsTAR1JPEM9TpGhl/0p3nQecC2LJ0kD8X5YARu1hk/9I1gril5vDtMZyNxcEpxxDj34YNck/ucjuoUd66K03oQ==" + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" + }, + "cssnano": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz", + "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==", + "requires": { + "cosmiconfig": "^5.0.0", + "cssnano-preset-default": "^4.0.7", + "is-resolvable": "^1.0.0", + "postcss": "^7.0.0" + }, + "dependencies": { + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + } + }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" + } + } + }, + "cssnano-preset-default": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz", + "integrity": "sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==", + "requires": { + "css-declaration-sorter": "^4.0.1", + "cssnano-util-raw-cache": "^4.0.1", + "postcss": "^7.0.0", + "postcss-calc": "^7.0.1", + "postcss-colormin": "^4.0.3", + "postcss-convert-values": "^4.0.1", + "postcss-discard-comments": "^4.0.2", + "postcss-discard-duplicates": "^4.0.2", + "postcss-discard-empty": "^4.0.1", + "postcss-discard-overridden": "^4.0.1", + "postcss-merge-longhand": "^4.0.11", + "postcss-merge-rules": "^4.0.3", + "postcss-minify-font-values": "^4.0.2", + "postcss-minify-gradients": "^4.0.2", + "postcss-minify-params": "^4.0.2", + "postcss-minify-selectors": "^4.0.2", + "postcss-normalize-charset": "^4.0.1", + "postcss-normalize-display-values": "^4.0.2", + "postcss-normalize-positions": "^4.0.2", + "postcss-normalize-repeat-style": "^4.0.2", + "postcss-normalize-string": "^4.0.2", + "postcss-normalize-timing-functions": "^4.0.2", + "postcss-normalize-unicode": "^4.0.1", + "postcss-normalize-url": "^4.0.1", + "postcss-normalize-whitespace": "^4.0.2", + "postcss-ordered-values": "^4.1.2", + "postcss-reduce-initial": "^4.0.3", + "postcss-reduce-transforms": "^4.0.2", + "postcss-svgo": "^4.0.2", + "postcss-unique-selectors": "^4.0.1" + } + }, + "cssnano-util-get-arguments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", + "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=" + }, + "cssnano-util-get-match": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", + "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=" + }, + "cssnano-util-raw-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz", + "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==", + "requires": { + "postcss": "^7.0.0" + } + }, + "cssnano-util-same-parent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz", + "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==" + }, + "csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "requires": { + "css-tree": "^1.1.2" + }, + "dependencies": { + "css-tree": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.2.tgz", + "integrity": "sha512-wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ==", + "requires": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + } + }, + "mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + } + } + }, + "cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" + }, + "cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "requires": { + "cssom": "~0.3.6" + }, + "dependencies": { + "cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" + } + } + }, + "cyclist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=" + }, + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "damerau-levenshtein": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz", + "integrity": "sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==" + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "requires": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + } + }, + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "requires": { + "ms": "2.1.2" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, + "decimal.js": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.1.tgz", + "integrity": "sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw==" + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + }, + "dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=" + }, + "deep-equal": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", + "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "requires": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + } + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" + }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" + }, + "default-gateway": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", + "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", + "requires": { + "execa": "^1.0.0", + "ip-regex": "^2.1.0" + } + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "requires": { + "object-keys": "^1.0.12" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "del": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", + "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", + "requires": { + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" + }, + "dependencies": { + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "requires": { + "array-uniq": "^1.0.1" + } + }, + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "requires": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } + } + }, + "p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==" + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==" + }, + "detect-node": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.5.tgz", + "integrity": "sha512-qi86tE6hRcFHy8jI1m2VG+LaPUR1LhqDa5G8tVjuUXmOrpuAgqsA1pN0+ldgr3aKUH+QLI9hCY/OcRYisERejw==" + }, + "detect-port-alt": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", + "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", + "requires": { + "address": "^1.0.1", + "debug": "^2.6.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "diff-sequences": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", + "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==" + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "requires": { + "path-type": "^4.0.0" + } + }, + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=" + }, + "dns-packet": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", + "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", + "requires": { + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" + } + }, + "dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "requires": { + "buffer-indexof": "^1.0.0" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "requires": { + "esutils": "^2.0.2" + } + }, + "dom-accessibility-api": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.4.tgz", + "integrity": "sha512-TvrjBckDy2c6v6RLxPv5QXOnU+SmF9nBII5621Ve5fu6Z/BDrENurBEvlC1f44lKEUVqOpK4w9E5Idc5/EgkLQ==" + }, + "dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "requires": { + "utila": "~0.4" + } + }, + "dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "requires": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + }, + "dependencies": { + "domelementtype": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz", + "integrity": "sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==" + } + } + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==" + }, + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + }, + "domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "requires": { + "webidl-conversions": "^5.0.0" + }, + "dependencies": { + "webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==" + } + } + }, + "domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "requires": { + "domelementtype": "1" + } + }, + "domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" + } + } + }, + "dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "requires": { + "is-obj": "^2.0.0" + } + }, + "dotenv": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz", + "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==" + }, + "dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==" + }, + "duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "ejs": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz", + "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==" + }, + "electron-to-chromium": { + "version": "1.3.691", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.691.tgz", + "integrity": "sha512-ZqiO69KImmOGCyoH0icQPU3SndJiW93juEvf63gQngyhODO6SpQIPMTOHldtCs5DS5GMKvAkquk230E2zt2vpw==" + }, + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "emittery": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.7.2.tgz", + "integrity": "sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==" + }, + "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==" + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "requires": { + "once": "^1.4.0" + } + }, + "enhanced-resolve": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", + "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + }, + "dependencies": { + "memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "requires": { + "ansi-colors": "^4.1.1" + } + }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" + }, + "errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "requires": { + "prr": "~1.0.1" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "error-stack-parser": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.6.tgz", + "integrity": "sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ==", + "requires": { + "stackframe": "^1.1.1" + } + }, + "es-abstract": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz", + "integrity": "sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==", + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "is-callable": "^1.2.3", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.2", + "is-string": "^1.0.5", + "object-inspect": "^1.9.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.0" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es5-ext": { + "version": "0.10.53", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", + "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "requires": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "escodegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "requires": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==" + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "requires": { + "prelude-ls": "~1.1.2" + } + } + } + }, + "eslint": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.22.0.tgz", + "integrity": "sha512-3VawOtjSJUQiiqac8MQc+w457iGLfuNGLFn8JmF051tTKbh5/x/0vlcEj8OgDCaw7Ysa2Jn8paGshV7x2abKXg==", + "requires": { + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.0.0", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash": "^4.17.21", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.4", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "globals": { + "version": "13.6.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.6.0.tgz", + "integrity": "sha512-YFKCX0SiPg7l5oKYCJ2zZGxcXprVXHcSnVuvzrT3oSENQonVLqM5pf9fN5dLGZGyCjhw8TN8Btwe/jKnZ0pjvQ==", + "requires": { + "type-fest": "^0.20.2" + } + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==" + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "eslint-config-react-app": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-6.0.0.tgz", + "integrity": "sha512-bpoAAC+YRfzq0dsTk+6v9aHm/uqnDwayNAXleMypGl6CpxI9oXXscVHo4fk3eJPIn+rsbtNetB4r/ZIidFIE8A==", + "requires": { + "confusing-browser-globals": "^1.0.10" + } + }, + "eslint-import-resolver-node": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", + "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", + "requires": { + "debug": "^2.6.9", + "resolve": "^1.13.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "eslint-module-utils": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", + "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", + "requires": { + "debug": "^2.6.9", + "pkg-dir": "^2.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "requires": { + "find-up": "^2.1.0" + } + } + } + }, + "eslint-plugin-flowtype": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-5.4.0.tgz", + "integrity": "sha512-O0s0iTT5UxYuoOpHMLSIO2qZMyvrb9shhk1EM5INNGtJ2CffrfUmsnh6TVsnoT41fkXIEndP630WNovhoO87xQ==", + "requires": { + "lodash": "^4.17.15", + "string-natural-compare": "^3.0.1" + } + }, + "eslint-plugin-import": { + "version": "2.22.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz", + "integrity": "sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw==", + "requires": { + "array-includes": "^3.1.1", + "array.prototype.flat": "^1.2.3", + "contains-path": "^0.1.0", + "debug": "^2.6.9", + "doctrine": "1.5.0", + "eslint-import-resolver-node": "^0.3.4", + "eslint-module-utils": "^2.6.0", + "has": "^1.0.3", + "minimatch": "^3.0.4", + "object.values": "^1.1.1", + "read-pkg-up": "^2.0.0", + "resolve": "^1.17.0", + "tsconfig-paths": "^3.9.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "doctrine": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "requires": { + "esutils": "^2.0.2", + "isarray": "^1.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "eslint-plugin-jest": { + "version": "24.3.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-24.3.2.tgz", + "integrity": "sha512-cicWDr+RvTAOKS3Q/k03+Z3odt3VCiWamNUHWd6QWbVQWcYJyYgUTu8x0mx9GfeDEimawU5kQC+nQ3MFxIM6bw==", + "requires": { + "@typescript-eslint/experimental-utils": "^4.0.1" + } + }, + "eslint-plugin-jsx-a11y": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.4.1.tgz", + "integrity": "sha512-0rGPJBbwHoGNPU73/QCLP/vveMlM1b1Z9PponxO87jfr6tuH5ligXbDT6nHSSzBC8ovX2Z+BQu7Bk5D/Xgq9zg==", + "requires": { + "@babel/runtime": "^7.11.2", + "aria-query": "^4.2.2", + "array-includes": "^3.1.1", + "ast-types-flow": "^0.0.7", + "axe-core": "^4.0.2", + "axobject-query": "^2.2.0", + "damerau-levenshtein": "^1.0.6", + "emoji-regex": "^9.0.0", + "has": "^1.0.3", + "jsx-ast-utils": "^3.1.0", + "language-tags": "^1.0.5" + }, + "dependencies": { + "emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + } + } + }, + "eslint-plugin-react": { + "version": "7.22.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.22.0.tgz", + "integrity": "sha512-p30tuX3VS+NWv9nQot9xIGAHBXR0+xJVaZriEsHoJrASGCJZDJ8JLNM0YqKqI0AKm6Uxaa1VUHoNEibxRCMQHA==", + "requires": { + "array-includes": "^3.1.1", + "array.prototype.flatmap": "^1.2.3", + "doctrine": "^2.1.0", + "has": "^1.0.3", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "object.entries": "^1.1.2", + "object.fromentries": "^2.0.2", + "object.values": "^1.1.1", + "prop-types": "^15.7.2", + "resolve": "^1.18.1", + "string.prototype.matchall": "^4.0.2" + }, + "dependencies": { + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "requires": { + "esutils": "^2.0.2" + } + } + } + }, + "eslint-plugin-react-hooks": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.2.0.tgz", + "integrity": "sha512-623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ==" + }, + "eslint-plugin-testing-library": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-3.10.1.tgz", + "integrity": "sha512-nQIFe2muIFv2oR2zIuXE4vTbcFNx8hZKRzgHZqJg8rfopIWwoTwtlbCCNELT/jXzVe1uZF68ALGYoDXjLczKiQ==", + "requires": { + "@typescript-eslint/experimental-utils": "^3.10.1" + }, + "dependencies": { + "@typescript-eslint/experimental-utils": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-3.10.1.tgz", + "integrity": "sha512-DewqIgscDzmAfd5nOGe4zm6Bl7PKtMG2Ad0KG8CUZAHlXfAKTF9Ol5PXhiMh39yRL2ChRH1cuuUGOcVyyrhQIw==", + "requires": { + "@types/json-schema": "^7.0.3", + "@typescript-eslint/types": "3.10.1", + "@typescript-eslint/typescript-estree": "3.10.1", + "eslint-scope": "^5.0.0", + "eslint-utils": "^2.0.0" + } + }, + "@typescript-eslint/types": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-3.10.1.tgz", + "integrity": "sha512-+3+FCUJIahE9q0lDi1WleYzjCwJs5hIsbugIgnbB+dSCYUxl8L6PwmsyOPFZde2hc1DlTo/xnkOgiTLSyAbHiQ==" + }, + "@typescript-eslint/typescript-estree": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-3.10.1.tgz", + "integrity": "sha512-QbcXOuq6WYvnB3XPsZpIwztBoquEYLXh2MtwVU+kO8jgYCiv4G5xrSP/1wg4tkvrEE+esZVquIPX/dxPlePk1w==", + "requires": { + "@typescript-eslint/types": "3.10.1", + "@typescript-eslint/visitor-keys": "3.10.1", + "debug": "^4.1.1", + "glob": "^7.1.6", + "is-glob": "^4.0.1", + "lodash": "^4.17.15", + "semver": "^7.3.2", + "tsutils": "^3.17.1" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-3.10.1.tgz", + "integrity": "sha512-9JgC82AaQeglebjZMgYR5wgmfUdUc+EitGUUMW8u2nDckaeimzW+VsoLV6FoimPv2id3VQzfjwBxEMVz08ameQ==", + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==" + } + } + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "requires": { + "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==" + } + } + }, + "eslint-visitor-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz", + "integrity": "sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==" + }, + "eslint-webpack-plugin": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-2.5.2.tgz", + "integrity": "sha512-ndD9chZ/kaGnjjx7taRg7c6FK/YKb29SSYzaLtPBIYLYJQmZtuKqtQbAvTS2ymiMQT6X0VW9vZIHK0KLstv93Q==", + "requires": { + "@types/eslint": "^7.2.6", + "arrify": "^2.0.1", + "jest-worker": "^26.6.2", + "micromatch": "^4.0.2", + "schema-utils": "^3.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "espree": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "requires": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==" + } + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==" + } + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==" + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + }, + "estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" + }, + "eventsource": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.1.0.tgz", + "integrity": "sha512-VSJjT5oCNrFvCS6igjzPAt5hBzQ2qPBFIbJ03zLI9SE0mxwZpMw6BfJrbFHm1a141AavMEB8JHmBhWAd66PfCg==", + "requires": { + "original": "^1.0.0" + } + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "exec-sh": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz", + "integrity": "sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A==" + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=" + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "expect": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/expect/-/expect-26.6.2.tgz", + "integrity": "sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==", + "requires": { + "@jest/types": "^26.6.2", + "ansi-styles": "^4.0.0", + "jest-get-type": "^26.3.0", + "jest-matcher-utils": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-regex-util": "^26.0.0" + } + }, + "express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "requires": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" + } + } + }, + "ext": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", + "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", + "requires": { + "type": "^2.0.0" + }, + "dependencies": { + "type": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.5.0.tgz", + "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==" + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "fast-glob": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", + "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==", + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + }, + "fastq": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz", + "integrity": "sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==", + "requires": { + "reusify": "^1.0.4" + } + }, + "faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "fb-watchman": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", + "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "requires": { + "bser": "2.1.1" + } + }, + "figgy-pudding": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==" + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "requires": { + "flat-cache": "^3.0.4" + } + }, + "file-loader": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.1.1.tgz", + "integrity": "sha512-Klt8C4BjWSXYQAfhpYYkG4qHNTna4toMHEbWrI5IuVoxbU6uiDKeKAP99R8mmbJi3lvewn/jQBOgU4+NS3tDQw==", + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "filesize": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-6.1.0.tgz", + "integrity": "sha512-LpCHtPQ3sFx67z+uh2HnSyWSLLu5Jxo21795uRDuar/EOuYWXib5EmPaGIBuSnRqH2IODiKA2k5re/K9OnN/Yg==" + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", + "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==" + }, + "flatten": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz", + "integrity": "sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==" + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "follow-redirects": { + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.3.tgz", + "integrity": "sha512-DUgl6+HDzB0iEptNQEXLx/KhTmDb8tZUHSeLqpnjpknR70H0nC2t9N73BK6fN4hOvJ84pKlIQVQ4k5FFlBedKA==" + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "fork-ts-checker-webpack-plugin": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-4.1.6.tgz", + "integrity": "sha512-DUxuQaKoqfNne8iikd14SAkh5uw4+8vNifp6gmA73yYNS6ywLIWSLD/n/mBzHQRpW3J7rbATEakmiA8JvkTyZw==", + "requires": { + "@babel/code-frame": "^7.5.5", + "chalk": "^2.4.1", + "micromatch": "^3.1.10", + "minimatch": "^3.0.4", + "semver": "^5.6.0", + "tapable": "^1.0.0", + "worker-rpc": "^0.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "requires": { + "minipass": "^3.0.0" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" + }, + "get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==" + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "requires": { + "pump": "^3.0.0" + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + }, + "global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "requires": { + "global-prefix": "^3.0.0" + } + }, + "global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "requires": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + }, + "globby": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.2.tgz", + "integrity": "sha512-2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og==", + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + } + }, + "graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" + }, + "growly": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", + "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", + "optional": true + }, + "gzip-size": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz", + "integrity": "sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==", + "requires": { + "duplexer": "^0.1.1", + "pify": "^4.0.1" + } + }, + "handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + } + }, + "harmony-reflect": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.1.tgz", + "integrity": "sha512-WJTeyp0JzGtHcuMsi7rw2VwtkvLa+JyfEKJCFyfcS0+CDkjQ5lHPu7zEhFZP+PDSRrEgXa5Ah0l1MbgbE41XjA==" + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + } + } + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" + }, + "hex-color-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", + "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==" + }, + "history": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", + "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", + "requires": { + "@babel/runtime": "^7.1.2", + "loose-envify": "^1.2.0", + "resolve-pathname": "^3.0.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0", + "value-equal": "^1.0.1" + } + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "requires": { + "react-is": "^16.7.0" + }, + "dependencies": { + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + } + } + }, + "hoopy": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", + "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==" + }, + "hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==" + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "requires": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "hsl-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", + "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=" + }, + "hsla-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", + "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=" + }, + "html-comment-regex": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", + "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==" + }, + "html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "requires": { + "whatwg-encoding": "^1.0.5" + } + }, + "html-entities": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz", + "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==" + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" + }, + "html-minifier-terser": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz", + "integrity": "sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==", + "requires": { + "camel-case": "^4.1.1", + "clean-css": "^4.2.3", + "commander": "^4.1.1", + "he": "^1.2.0", + "param-case": "^3.0.3", + "relateurl": "^0.2.7", + "terser": "^4.6.3" + } + }, + "html-webpack-plugin": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.5.0.tgz", + "integrity": "sha512-MouoXEYSjTzCrjIxWwg8gxL5fE2X2WZJLmBYXlaJhQUH5K/b5OrqmV7T4dB7iu0xkmJ6JlUuV6fFVtnqbPopZw==", + "requires": { + "@types/html-minifier-terser": "^5.0.0", + "@types/tapable": "^1.0.5", + "@types/webpack": "^4.41.8", + "html-minifier-terser": "^5.0.1", + "loader-utils": "^1.2.3", + "lodash": "^4.17.15", + "pretty-error": "^2.1.1", + "tapable": "^1.1.3", + "util.promisify": "1.0.0" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "util.promisify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", + "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", + "requires": { + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" + } + } + } + }, + "htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", + "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "requires": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + }, + "dependencies": { + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" + } + } + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=" + }, + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + } + } + }, + "http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "requires": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "http-proxy-middleware": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", + "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", + "requires": { + "http-proxy": "^1.17.0", + "is-glob": "^4.0.0", + "lodash": "^4.17.11", + "micromatch": "^3.1.10" + }, + "dependencies": { + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" + }, + "human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==" + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "icss-utils": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz", + "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==", + "requires": { + "postcss": "^7.0.14" + } + }, + "identity-obj-proxy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", + "integrity": "sha1-lNK9qWCERT7zb7xarsN+D3nx/BQ=", + "requires": { + "harmony-reflect": "^1.4.6" + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" + }, + "ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==" + }, + "immer": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/immer/-/immer-8.0.1.tgz", + "integrity": "sha512-aqXhGP7//Gui2+UrEtvxZxSquQVXTpZ7KDxfCcKAF3Vysvw0CViVaW9RZ1j1xlIYqaaaipBoqdqeibkc18PNvA==" + }, + "import-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", + "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", + "requires": { + "import-from": "^2.1.0" + } + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "import-from": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", + "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", + "requires": { + "resolve-from": "^3.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" + } + } + }, + "import-local": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", + "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "dependencies": { + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "requires": { + "find-up": "^4.0.0" + } + } + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + }, + "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==" + }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=" + }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "internal-ip": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", + "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", + "requires": { + "default-gateway": "^4.2.0", + "ipaddr.js": "^1.9.0" + } + }, + "internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "requires": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" + }, + "ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=" + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + }, + "is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=" + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-arguments": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", + "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", + "requires": { + "call-bind": "^1.0.0" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "is-bigint": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.1.tgz", + "integrity": "sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg==" + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "optional": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-boolean-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.0.tgz", + "integrity": "sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA==", + "requires": { + "call-bind": "^1.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "is-callable": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", + "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==" + }, + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "requires": { + "ci-info": "^2.0.0" + } + }, + "is-color-stop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", + "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", + "requires": { + "css-color-names": "^0.0.4", + "hex-color-regex": "^1.1.0", + "hsl-regex": "^1.0.0", + "hsla-regex": "^1.0.0", + "rgb-regex": "^1.0.1", + "rgba-regex": "^1.0.0" + } + }, + "is-core-module": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", + "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "requires": { + "has": "^1.0.3" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=" + }, + "is-docker": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz", + "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==" + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==" + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=" + }, + "is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==" + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-number-object": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz", + "integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==" + }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" + }, + "is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==" + }, + "is-path-in-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", + "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", + "requires": { + "is-path-inside": "^2.1.0" + } + }, + "is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", + "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", + "requires": { + "path-is-inside": "^1.0.2" + } + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" + }, + "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==", + "requires": { + "isobject": "^3.0.1" + } + }, + "is-potential-custom-element-name": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz", + "integrity": "sha1-DFLlS8yjkbssSUsh6GJtczbG45c=" + }, + "is-regex": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz", + "integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==", + "requires": { + "call-bind": "^1.0.2", + "has-symbols": "^1.0.1" + } + }, + "is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=" + }, + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==" + }, + "is-root": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", + "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==" + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "is-string": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", + "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==" + }, + "is-svg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz", + "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==", + "requires": { + "html-comment-regex": "^1.1.0" + } + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" + }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "requires": { + "is-docker": "^2.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "istanbul-lib-coverage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==" + }, + "istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "requires": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "requires": { + "semver": "^6.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "istanbul-lib-source-maps": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", + "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + } + }, + "istanbul-reports": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", + "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "jest": { + "version": "26.6.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-26.6.0.tgz", + "integrity": "sha512-jxTmrvuecVISvKFFhOkjsWRZV7sFqdSUAd1ajOKY+/QE/aLBVstsJ/dX8GczLzwiT6ZEwwmZqtCUHLHHQVzcfA==", + "requires": { + "@jest/core": "^26.6.0", + "import-local": "^3.0.2", + "jest-cli": "^26.6.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "jest-cli": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", + "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", + "requires": { + "@jest/core": "^26.6.3", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "import-local": "^3.0.2", + "is-ci": "^2.0.0", + "jest-config": "^26.6.3", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "prompts": "^2.0.1", + "yargs": "^15.4.1" + } + } + } + }, + "jest-changed-files": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.6.2.tgz", + "integrity": "sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ==", + "requires": { + "@jest/types": "^26.6.2", + "execa": "^4.0.0", + "throat": "^5.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "requires": { + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "requires": { + "path-key": "^3.0.0" + } + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "jest-circus": { + "version": "26.6.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-26.6.0.tgz", + "integrity": "sha512-L2/Y9szN6FJPWFK8kzWXwfp+FOR7xq0cUL4lIsdbIdwz3Vh6P1nrpcqOleSzr28zOtSHQNV9Z7Tl+KkuK7t5Ng==", + "requires": { + "@babel/traverse": "^7.1.0", + "@jest/environment": "^26.6.0", + "@jest/test-result": "^26.6.0", + "@jest/types": "^26.6.0", + "@types/babel__traverse": "^7.0.4", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "expect": "^26.6.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^26.6.0", + "jest-matcher-utils": "^26.6.0", + "jest-message-util": "^26.6.0", + "jest-runner": "^26.6.0", + "jest-runtime": "^26.6.0", + "jest-snapshot": "^26.6.0", + "jest-util": "^26.6.0", + "pretty-format": "^26.6.0", + "stack-utils": "^2.0.2", + "throat": "^5.0.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "jest-config": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-26.6.3.tgz", + "integrity": "sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==", + "requires": { + "@babel/core": "^7.1.0", + "@jest/test-sequencer": "^26.6.3", + "@jest/types": "^26.6.2", + "babel-jest": "^26.6.3", + "chalk": "^4.0.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.4", + "jest-environment-jsdom": "^26.6.2", + "jest-environment-node": "^26.6.2", + "jest-get-type": "^26.3.0", + "jest-jasmine2": "^26.6.3", + "jest-regex-util": "^26.0.0", + "jest-resolve": "^26.6.2", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "micromatch": "^4.0.2", + "pretty-format": "^26.6.2" + }, + "dependencies": { + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "jest-resolve": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz", + "integrity": "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==", + "requires": { + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^26.6.2", + "read-pkg-up": "^7.0.1", + "resolve": "^1.18.1", + "slash": "^3.0.0" + } + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==" + } + } + }, + "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==", + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + } + } + } + }, + "jest-diff": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", + "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^26.6.2", + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" + }, + "dependencies": { + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "jest-docblock": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-26.0.0.tgz", + "integrity": "sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==", + "requires": { + "detect-newline": "^3.0.0" + } + }, + "jest-each": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-26.6.2.tgz", + "integrity": "sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A==", + "requires": { + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "jest-get-type": "^26.3.0", + "jest-util": "^26.6.2", + "pretty-format": "^26.6.2" + }, + "dependencies": { + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "jest-environment-jsdom": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz", + "integrity": "sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q==", + "requires": { + "@jest/environment": "^26.6.2", + "@jest/fake-timers": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "jest-mock": "^26.6.2", + "jest-util": "^26.6.2", + "jsdom": "^16.4.0" + } + }, + "jest-environment-node": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.6.2.tgz", + "integrity": "sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==", + "requires": { + "@jest/environment": "^26.6.2", + "@jest/fake-timers": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "jest-mock": "^26.6.2", + "jest-util": "^26.6.2" + } + }, + "jest-get-type": { + "version": "26.3.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", + "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==" + }, + "jest-haste-map": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.2.tgz", + "integrity": "sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==", + "requires": { + "@jest/types": "^26.6.2", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.1.2", + "graceful-fs": "^4.2.4", + "jest-regex-util": "^26.0.0", + "jest-serializer": "^26.6.2", + "jest-util": "^26.6.2", + "jest-worker": "^26.6.2", + "micromatch": "^4.0.2", + "sane": "^4.0.3", + "walker": "^1.0.7" + } + }, + "jest-jasmine2": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz", + "integrity": "sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==", + "requires": { + "@babel/traverse": "^7.1.0", + "@jest/environment": "^26.6.2", + "@jest/source-map": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^26.6.2", + "is-generator-fn": "^2.0.0", + "jest-each": "^26.6.2", + "jest-matcher-utils": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-runtime": "^26.6.3", + "jest-snapshot": "^26.6.2", + "jest-util": "^26.6.2", + "pretty-format": "^26.6.2", + "throat": "^5.0.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "jest-leak-detector": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz", + "integrity": "sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg==", + "requires": { + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" + } + }, + "jest-matcher-utils": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz", + "integrity": "sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==", + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^26.6.2", + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" + }, + "dependencies": { + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "jest-message-util": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.6.2.tgz", + "integrity": "sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==", + "requires": { + "@babel/code-frame": "^7.0.0", + "@jest/types": "^26.6.2", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.2", + "pretty-format": "^26.6.2", + "slash": "^3.0.0", + "stack-utils": "^2.0.2" + }, + "dependencies": { + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "jest-mock": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-26.6.2.tgz", + "integrity": "sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew==", + "requires": { + "@jest/types": "^26.6.2", + "@types/node": "*" + } + }, + "jest-pnp-resolver": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", + "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==" + }, + "jest-regex-util": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz", + "integrity": "sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==" + }, + "jest-resolve": { + "version": "26.6.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.0.tgz", + "integrity": "sha512-tRAz2bwraHufNp+CCmAD8ciyCpXCs1NQxB5EJAmtCFy6BN81loFEGWKzYu26Y62lAJJe4X4jg36Kf+NsQyiStQ==", + "requires": { + "@jest/types": "^26.6.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^26.6.0", + "read-pkg-up": "^7.0.1", + "resolve": "^1.17.0", + "slash": "^3.0.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==" + } + } + }, + "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==", + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + } + } + } + }, + "jest-resolve-dependencies": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz", + "integrity": "sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg==", + "requires": { + "@jest/types": "^26.6.2", + "jest-regex-util": "^26.0.0", + "jest-snapshot": "^26.6.2" + } + }, + "jest-runner": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-26.6.3.tgz", + "integrity": "sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==", + "requires": { + "@jest/console": "^26.6.2", + "@jest/environment": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.7.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "jest-config": "^26.6.3", + "jest-docblock": "^26.0.0", + "jest-haste-map": "^26.6.2", + "jest-leak-detector": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-resolve": "^26.6.2", + "jest-runtime": "^26.6.3", + "jest-util": "^26.6.2", + "jest-worker": "^26.6.2", + "source-map-support": "^0.5.6", + "throat": "^5.0.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "jest-resolve": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz", + "integrity": "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==", + "requires": { + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^26.6.2", + "read-pkg-up": "^7.0.1", + "resolve": "^1.18.1", + "slash": "^3.0.0" + } + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==" + } + } + }, + "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==", + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + } + } + } + }, + "jest-runtime": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.6.3.tgz", + "integrity": "sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw==", + "requires": { + "@jest/console": "^26.6.2", + "@jest/environment": "^26.6.2", + "@jest/fake-timers": "^26.6.2", + "@jest/globals": "^26.6.2", + "@jest/source-map": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/transform": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0", + "cjs-module-lexer": "^0.6.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.4", + "jest-config": "^26.6.3", + "jest-haste-map": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-mock": "^26.6.2", + "jest-regex-util": "^26.0.0", + "jest-resolve": "^26.6.2", + "jest-snapshot": "^26.6.2", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "slash": "^3.0.0", + "strip-bom": "^4.0.0", + "yargs": "^15.4.1" + }, + "dependencies": { + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "jest-resolve": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz", + "integrity": "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==", + "requires": { + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^26.6.2", + "read-pkg-up": "^7.0.1", + "resolve": "^1.18.1", + "slash": "^3.0.0" + } + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==" + } + } + }, + "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==", + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + } + }, + "strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==" + } + } + }, + "jest-serializer": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.6.2.tgz", + "integrity": "sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==", + "requires": { + "@types/node": "*", + "graceful-fs": "^4.2.4" + } + }, + "jest-snapshot": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.6.2.tgz", + "integrity": "sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==", + "requires": { + "@babel/types": "^7.0.0", + "@jest/types": "^26.6.2", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.0.0", + "chalk": "^4.0.0", + "expect": "^26.6.2", + "graceful-fs": "^4.2.4", + "jest-diff": "^26.6.2", + "jest-get-type": "^26.3.0", + "jest-haste-map": "^26.6.2", + "jest-matcher-utils": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-resolve": "^26.6.2", + "natural-compare": "^1.4.0", + "pretty-format": "^26.6.2", + "semver": "^7.3.2" + }, + "dependencies": { + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "jest-resolve": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz", + "integrity": "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==", + "requires": { + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^26.6.2", + "read-pkg-up": "^7.0.1", + "resolve": "^1.18.1", + "slash": "^3.0.0" + } + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==" + } + } + }, + "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==", + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + } + } + } + }, + "jest-util": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.6.2.tgz", + "integrity": "sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==", + "requires": { + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^2.0.0", + "micromatch": "^4.0.2" + }, + "dependencies": { + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "jest-validate": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-26.6.2.tgz", + "integrity": "sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==", + "requires": { + "@jest/types": "^26.6.2", + "camelcase": "^6.0.0", + "chalk": "^4.0.0", + "jest-get-type": "^26.3.0", + "leven": "^3.1.0", + "pretty-format": "^26.6.2" + }, + "dependencies": { + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "jest-watch-typeahead": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-0.6.1.tgz", + "integrity": "sha512-ITVnHhj3Jd/QkqQcTqZfRgjfyRhDFM/auzgVo2RKvSwi18YMvh0WvXDJFoFED6c7jd/5jxtu4kSOb9PTu2cPVg==", + "requires": { + "ansi-escapes": "^4.3.1", + "chalk": "^4.0.0", + "jest-regex-util": "^26.0.0", + "jest-watcher": "^26.3.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "jest-watcher": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.6.2.tgz", + "integrity": "sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ==", + "requires": { + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^26.6.2", + "string-length": "^4.0.1" + }, + "dependencies": { + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + }, + "jsdom": { + "version": "16.5.1", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.5.1.tgz", + "integrity": "sha512-pF73EOsJgwZekbDHEY5VO/yKXUkab/DuvrQB/ANVizbr6UAHJsDdHXuotZYwkJSGQl1JM+ivXaqY+XBDDL4TiA==", + "requires": { + "abab": "^2.0.5", + "acorn": "^8.0.5", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "html-encoding-sniffer": "^2.0.1", + "is-potential-custom-element-name": "^1.0.0", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "request": "^2.88.2", + "request-promise-native": "^1.0.9", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0", + "ws": "^7.4.4", + "xml-name-validator": "^3.0.0" + }, + "dependencies": { + "acorn": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.1.0.tgz", + "integrity": "sha512-LWCF/Wn0nfHOmJ9rzQApGnxnvgfROzGilS8936rqN/lfcYkY9MYZzdMqN+2NJ4SlTc+m5HiSa+kNfDtI64dwUA==" + } + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "json3": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", + "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==" + }, + "json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "requires": { + "minimist": "^1.2.5" + } + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "jsx-ast-utils": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz", + "integrity": "sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q==", + "requires": { + "array-includes": "^3.1.2", + "object.assign": "^4.1.2" + } + }, + "killable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", + "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==" + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" + }, + "language-subtag-registry": { + "version": "0.3.21", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz", + "integrity": "sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg==" + }, + "language-tags": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", + "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=", + "requires": { + "language-subtag-registry": "~0.3.2" + } + }, + "last-call-webpack-plugin": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz", + "integrity": "sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w==", + "requires": { + "lodash": "^4.17.5", + "webpack-sources": "^1.1.0" + } + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==" + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=" + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "requires": { + "error-ex": "^1.2.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } + } + }, + "loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==" + }, + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lodash._reinterpolate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=" + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" + }, + "lodash.template": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", + "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", + "requires": { + "lodash._reinterpolate": "^3.0.0", + "lodash.templatesettings": "^4.0.0" + } + }, + "lodash.templatesettings": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", + "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", + "requires": { + "lodash._reinterpolate": "^3.0.0" + } + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" + }, + "loglevel": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz", + "integrity": "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==" + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "requires": { + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" + } + } + }, + "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==", + "requires": { + "yallist": "^4.0.0" + } + }, + "lz-string": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz", + "integrity": "sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY=" + }, + "magic-string": { + "version": "0.25.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", + "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "requires": { + "sourcemap-codec": "^1.4.4" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "makeerror": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", + "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", + "requires": { + "tmpl": "1.0.x" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "requires": { + "object-visit": "^1.0.0" + } + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==" + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "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==" + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "microevent.ts": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/microevent.ts/-/microevent.ts-0.1.1.tgz", + "integrity": "sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g==" + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.46.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.46.0.tgz", + "integrity": "sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==" + }, + "mime-types": { + "version": "2.1.29", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.29.tgz", + "integrity": "sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==", + "requires": { + "mime-db": "1.46.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + }, + "min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==" + }, + "mini-create-react-context": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz", + "integrity": "sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ==", + "requires": { + "@babel/runtime": "^7.12.1", + "tiny-warning": "^1.0.3" + } + }, + "mini-css-extract-plugin": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.11.3.tgz", + "integrity": "sha512-n9BA8LonkOkW1/zn+IbLPQmovsL0wMb9yx75fMJQZf2X1Zoec9yTZtyMePcyu19wPkmFbzZZA6fLTotpFhQsOA==", + "requires": { + "loader-utils": "^1.1.0", + "normalize-url": "1.9.1", + "schema-utils": "^1.0.0", + "webpack-sources": "^1.1.0" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "minipass": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", + "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", + "requires": { + "yallist": "^4.0.0" + } + }, + "minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "requires": { + "minipass": "^3.0.0" + } + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + } + }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "requires": { + "minimist": "^1.2.5" + } + }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", + "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "requires": { + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" + } + }, + "multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=" + }, + "nanoid": { + "version": "3.1.22", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.22.tgz", + "integrity": "sha512-/2ZUaJX2ANuLtTvqTlgqBQNJoQO398KyJgZloL0PZkC0dpysjncRUPsFe3DUPzz/y3h+u7C46np8RMuvF3jsSQ==" + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "native-url": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/native-url/-/native-url-0.2.6.tgz", + "integrity": "sha512-k4bDC87WtgrdD362gZz6zoiXQrl40kYlBmpfmSjwRO1VU0V5ccwJTlxuE72F6m3V0vc1xOf6n3UCP9QyerRqmA==", + "requires": { + "querystring": "^0.2.0" + } + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + }, + "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==" + }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" + }, + "no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "requires": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" + } + } + }, + "node-forge": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", + "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==" + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" + }, + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + } + } + }, + "node-modules-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", + "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=" + }, + "node-notifier": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.2.tgz", + "integrity": "sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg==", + "optional": true, + "requires": { + "growly": "^1.3.0", + "is-wsl": "^2.2.0", + "semver": "^7.3.2", + "shellwords": "^0.1.1", + "uuid": "^8.3.0", + "which": "^2.0.2" + }, + "dependencies": { + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "optional": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "node-releases": { + "version": "1.1.71", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz", + "integrity": "sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==" + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=" + }, + "normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", + "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "requires": { + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "requires": { + "path-key": "^2.0.0" + } + }, + "nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "requires": { + "boolbase": "~1.0.0" + } + }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=" + }, + "nwsapi": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", + "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==" + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-inspect": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", + "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==" + }, + "object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "object.entries": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.3.tgz", + "integrity": "sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1", + "has": "^1.0.3" + } + }, + "object.fromentries": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.4.tgz", + "integrity": "sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2", + "has": "^1.0.3" + } + }, + "object.getownpropertydescriptors": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz", + "integrity": "sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "requires": { + "isobject": "^3.0.1" + } + }, + "object.values": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.3.tgz", + "integrity": "sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2", + "has": "^1.0.3" + } + }, + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "open": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", + "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", + "requires": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + } + }, + "opn": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", + "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", + "requires": { + "is-wsl": "^1.1.0" + }, + "dependencies": { + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" + } + } + }, + "optimize-css-assets-webpack-plugin": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.4.tgz", + "integrity": "sha512-wqd6FdI2a5/FdoiCNNkEvLeA//lHHfG24Ln2Xm2qqdIk4aOlsR18jwpyOihqQ8849W3qu2DX8fOYxpvTMj+93A==", + "requires": { + "cssnano": "^4.1.10", + "last-call-webpack-plugin": "^3.0.0" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "original": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", + "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", + "requires": { + "url-parse": "^1.4.3" + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" + }, + "p-each-series": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz", + "integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==" + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "requires": { + "p-limit": "^2.2.0" + } + }, + "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==", + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "p-retry": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", + "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", + "requires": { + "retry": "^0.12.0" + } + }, + "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==" + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "requires": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "requires": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" + } + } + }, + "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==", + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "requires": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" + } + } + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" + }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==" + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" + }, + "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==" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" + }, + "pbkdf2": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", + "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==" + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "requires": { + "pinkie": "^2.0.0" + } + }, + "pirates": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", + "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", + "requires": { + "node-modules-regexp": "^1.0.0" + } + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "requires": { + "find-up": "^3.0.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + } + } + }, + "pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "requires": { + "find-up": "^3.0.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + } + } + }, + "pnp-webpack-plugin": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz", + "integrity": "sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg==", + "requires": { + "ts-pnp": "^1.1.6" + } + }, + "portfinder": { + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", + "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "requires": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.5" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-attribute-case-insensitive": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.2.tgz", + "integrity": "sha512-clkFxk/9pcdb4Vkn0hAHq3YnxBQ2p0CGD1dy24jN+reBck+EWxMbxSUqN4Yj7t0w8csl87K6p0gxBe1utkJsYA==", + "requires": { + "postcss": "^7.0.2", + "postcss-selector-parser": "^6.0.2" + } + }, + "postcss-browser-comments": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-browser-comments/-/postcss-browser-comments-3.0.0.tgz", + "integrity": "sha512-qfVjLfq7HFd2e0HW4s1dvU8X080OZdG46fFbIBFjW7US7YPDcWfRvdElvwMJr2LI6hMmD+7LnH2HcmXTs+uOig==", + "requires": { + "postcss": "^7" + } + }, + "postcss-calc": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz", + "integrity": "sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==", + "requires": { + "postcss": "^7.0.27", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.2" + } + }, + "postcss-color-functional-notation": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz", + "integrity": "sha512-ZBARCypjEDofW4P6IdPVTLhDNXPRn8T2s1zHbZidW6rPaaZvcnCS2soYFIQJrMZSxiePJ2XIYTlcb2ztr/eT2g==", + "requires": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + } + }, + "postcss-color-gray": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-color-gray/-/postcss-color-gray-5.0.0.tgz", + "integrity": "sha512-q6BuRnAGKM/ZRpfDascZlIZPjvwsRye7UDNalqVz3s7GDxMtqPY6+Q871liNxsonUw8oC61OG+PSaysYpl1bnw==", + "requires": { + "@csstools/convert-colors": "^1.4.0", + "postcss": "^7.0.5", + "postcss-values-parser": "^2.0.0" + } + }, + "postcss-color-hex-alpha": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.3.tgz", + "integrity": "sha512-PF4GDel8q3kkreVXKLAGNpHKilXsZ6xuu+mOQMHWHLPNyjiUBOr75sp5ZKJfmv1MCus5/DWUGcK9hm6qHEnXYw==", + "requires": { + "postcss": "^7.0.14", + "postcss-values-parser": "^2.0.1" + } + }, + "postcss-color-mod-function": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz", + "integrity": "sha512-YP4VG+xufxaVtzV6ZmhEtc+/aTXH3d0JLpnYfxqTvwZPbJhWqp8bSY3nfNzNRFLgB4XSaBA82OE4VjOOKpCdVQ==", + "requires": { + "@csstools/convert-colors": "^1.4.0", + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + } + }, + "postcss-color-rebeccapurple": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz", + "integrity": "sha512-aAe3OhkS6qJXBbqzvZth2Au4V3KieR5sRQ4ptb2b2O8wgvB3SJBsdG+jsn2BZbbwekDG8nTfcCNKcSfe/lEy8g==", + "requires": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + } + }, + "postcss-colormin": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", + "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", + "requires": { + "browserslist": "^4.0.0", + "color": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-convert-values": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", + "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-custom-media": { + "version": "7.0.8", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz", + "integrity": "sha512-c9s5iX0Ge15o00HKbuRuTqNndsJUbaXdiNsksnVH8H4gdc+zbLzr/UasOwNG6CTDpLFekVY4672eWdiiWu2GUg==", + "requires": { + "postcss": "^7.0.14" + } + }, + "postcss-custom-properties": { + "version": "8.0.11", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-8.0.11.tgz", + "integrity": "sha512-nm+o0eLdYqdnJ5abAJeXp4CEU1c1k+eB2yMCvhgzsds/e0umabFrN6HoTy/8Q4K5ilxERdl/JD1LO5ANoYBeMA==", + "requires": { + "postcss": "^7.0.17", + "postcss-values-parser": "^2.0.1" + } + }, + "postcss-custom-selectors": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz", + "integrity": "sha512-DSGDhqinCqXqlS4R7KGxL1OSycd1lydugJ1ky4iRXPHdBRiozyMHrdu0H3o7qNOCiZwySZTUI5MV0T8QhCLu+w==", + "requires": { + "postcss": "^7.0.2", + "postcss-selector-parser": "^5.0.0-rc.3" + }, + "dependencies": { + "cssesc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", + "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==" + }, + "postcss-selector-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", + "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", + "requires": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-dir-pseudo-class": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz", + "integrity": "sha512-3pm4oq8HYWMZePJY+5ANriPs3P07q+LW6FAdTlkFH2XqDdP4HeeJYMOzn0HYLhRSjBO3fhiqSwwU9xEULSrPgw==", + "requires": { + "postcss": "^7.0.2", + "postcss-selector-parser": "^5.0.0-rc.3" + }, + "dependencies": { + "cssesc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", + "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==" + }, + "postcss-selector-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", + "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", + "requires": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-discard-comments": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", + "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-duplicates": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", + "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-empty": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", + "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-overridden": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", + "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-double-position-gradients": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz", + "integrity": "sha512-G+nV8EnQq25fOI8CH/B6krEohGWnF5+3A6H/+JEpOncu5dCnkS1QQ6+ct3Jkaepw1NGVqqOZH6lqrm244mCftA==", + "requires": { + "postcss": "^7.0.5", + "postcss-values-parser": "^2.0.0" + } + }, + "postcss-env-function": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-2.0.2.tgz", + "integrity": "sha512-rwac4BuZlITeUbiBq60h/xbLzXY43qOsIErngWa4l7Mt+RaSkT7QBjXVGTcBHupykkblHMDrBFh30zchYPaOUw==", + "requires": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + } + }, + "postcss-flexbugs-fixes": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.2.1.tgz", + "integrity": "sha512-9SiofaZ9CWpQWxOwRh1b/r85KD5y7GgvsNt1056k6OYLvWUun0czCvogfJgylC22uJTwW1KzY3Gz65NZRlvoiQ==", + "requires": { + "postcss": "^7.0.26" + } + }, + "postcss-focus-visible": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz", + "integrity": "sha512-Z5CkWBw0+idJHSV6+Bgf2peDOFf/x4o+vX/pwcNYrWpXFrSfTkQ3JQ1ojrq9yS+upnAlNRHeg8uEwFTgorjI8g==", + "requires": { + "postcss": "^7.0.2" + } + }, + "postcss-focus-within": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz", + "integrity": "sha512-W0APui8jQeBKbCGZudW37EeMCjDeVxKgiYfIIEo8Bdh5SpB9sxds/Iq8SEuzS0Q4YFOlG7EPFulbbxujpkrV2w==", + "requires": { + "postcss": "^7.0.2" + } + }, + "postcss-font-variant": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-4.0.1.tgz", + "integrity": "sha512-I3ADQSTNtLTTd8uxZhtSOrTCQ9G4qUVKPjHiDk0bV75QSxXjVWiJVJ2VLdspGUi9fbW9BcjKJoRvxAH1pckqmA==", + "requires": { + "postcss": "^7.0.2" + } + }, + "postcss-gap-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz", + "integrity": "sha512-QZSqDaMgXCHuHTEzMsS2KfVDOq7ZFiknSpkrPJY6jmxbugUPTuSzs/vuE5I3zv0WAS+3vhrlqhijiprnuQfzmg==", + "requires": { + "postcss": "^7.0.2" + } + }, + "postcss-image-set-function": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz", + "integrity": "sha512-oPTcFFip5LZy8Y/whto91L9xdRHCWEMs3e1MdJxhgt4jy2WYXfhkng59fH5qLXSCPN8k4n94p1Czrfe5IOkKUw==", + "requires": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + } + }, + "postcss-initial": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-3.0.2.tgz", + "integrity": "sha512-ugA2wKonC0xeNHgirR4D3VWHs2JcU08WAi1KFLVcnb7IN89phID6Qtg2RIctWbnvp1TM2BOmDtX8GGLCKdR8YA==", + "requires": { + "lodash.template": "^4.5.0", + "postcss": "^7.0.2" + } + }, + "postcss-lab-function": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz", + "integrity": "sha512-whLy1IeZKY+3fYdqQFuDBf8Auw+qFuVnChWjmxm/UhHWqNHZx+B99EwxTvGYmUBqe3Fjxs4L1BoZTJmPu6usVg==", + "requires": { + "@csstools/convert-colors": "^1.4.0", + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + } + }, + "postcss-load-config": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz", + "integrity": "sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==", + "requires": { + "cosmiconfig": "^5.0.0", + "import-cwd": "^2.0.0" + }, + "dependencies": { + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + } + }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" + } + } + }, + "postcss-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz", + "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==", + "requires": { + "loader-utils": "^1.1.0", + "postcss": "^7.0.0", + "postcss-load-config": "^2.0.0", + "schema-utils": "^1.0.0" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "postcss-logical": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-3.0.0.tgz", + "integrity": "sha512-1SUKdJc2vuMOmeItqGuNaC+N8MzBWFWEkAnRnLpFYj1tGGa7NqyVBujfRtgNa2gXR+6RkGUiB2O5Vmh7E2RmiA==", + "requires": { + "postcss": "^7.0.2" + } + }, + "postcss-media-minmax": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz", + "integrity": "sha512-fo9moya6qyxsjbFAYl97qKO9gyre3qvbMnkOZeZwlsW6XYFsvs2DMGDlchVLfAd8LHPZDxivu/+qW2SMQeTHBw==", + "requires": { + "postcss": "^7.0.2" + } + }, + "postcss-merge-longhand": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", + "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", + "requires": { + "css-color-names": "0.0.4", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "stylehacks": "^4.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-merge-rules": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", + "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "cssnano-util-same-parent": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0", + "vendors": "^1.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-minify-font-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", + "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-minify-gradients": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", + "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "is-color-stop": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-minify-params": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", + "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", + "requires": { + "alphanum-sort": "^1.0.0", + "browserslist": "^4.0.0", + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "uniqs": "^2.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-minify-selectors": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", + "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", + "requires": { + "alphanum-sort": "^1.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-modules-extract-imports": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz", + "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==", + "requires": { + "postcss": "^7.0.5" + } + }, + "postcss-modules-local-by-default": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz", + "integrity": "sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw==", + "requires": { + "icss-utils": "^4.1.1", + "postcss": "^7.0.32", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-modules-scope": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz", + "integrity": "sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==", + "requires": { + "postcss": "^7.0.6", + "postcss-selector-parser": "^6.0.0" + } + }, + "postcss-modules-values": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz", + "integrity": "sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==", + "requires": { + "icss-utils": "^4.0.0", + "postcss": "^7.0.6" + } + }, + "postcss-nesting": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-7.0.1.tgz", + "integrity": "sha512-FrorPb0H3nuVq0Sff7W2rnc3SmIcruVC6YwpcS+k687VxyxO33iE1amna7wHuRVzM8vfiYofXSBHNAZ3QhLvYg==", + "requires": { + "postcss": "^7.0.2" + } + }, + "postcss-normalize": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize/-/postcss-normalize-8.0.1.tgz", + "integrity": "sha512-rt9JMS/m9FHIRroDDBGSMsyW1c0fkvOJPy62ggxSHUldJO7B195TqFMqIf+lY5ezpDcYOV4j86aUp3/XbxzCCQ==", + "requires": { + "@csstools/normalize.css": "^10.1.0", + "browserslist": "^4.6.2", + "postcss": "^7.0.17", + "postcss-browser-comments": "^3.0.0", + "sanitize.css": "^10.0.0" + } + }, + "postcss-normalize-charset": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", + "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-normalize-display-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", + "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-normalize-positions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", + "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-normalize-repeat-style": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", + "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-normalize-string": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", + "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", + "requires": { + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-normalize-timing-functions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", + "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-normalize-unicode": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", + "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-normalize-url": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", + "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", + "requires": { + "is-absolute-url": "^2.0.0", + "normalize-url": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "normalize-url": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", + "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==" + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-normalize-whitespace": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", + "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-ordered-values": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", + "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-overflow-shorthand": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz", + "integrity": "sha512-aK0fHc9CBNx8jbzMYhshZcEv8LtYnBIRYQD5i7w/K/wS9c2+0NSR6B3OVMu5y0hBHYLcMGjfU+dmWYNKH0I85g==", + "requires": { + "postcss": "^7.0.2" + } + }, + "postcss-page-break": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-2.0.0.tgz", + "integrity": "sha512-tkpTSrLpfLfD9HvgOlJuigLuk39wVTbbd8RKcy8/ugV2bNBUW3xU+AIqyxhDrQr1VUj1RmyJrBn1YWrqUm9zAQ==", + "requires": { + "postcss": "^7.0.2" + } + }, + "postcss-place": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-4.0.1.tgz", + "integrity": "sha512-Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg==", + "requires": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + } + }, + "postcss-preset-env": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-6.7.0.tgz", + "integrity": "sha512-eU4/K5xzSFwUFJ8hTdTQzo2RBLbDVt83QZrAvI07TULOkmyQlnYlpwep+2yIK+K+0KlZO4BvFcleOCCcUtwchg==", + "requires": { + "autoprefixer": "^9.6.1", + "browserslist": "^4.6.4", + "caniuse-lite": "^1.0.30000981", + "css-blank-pseudo": "^0.1.4", + "css-has-pseudo": "^0.10.0", + "css-prefers-color-scheme": "^3.1.1", + "cssdb": "^4.4.0", + "postcss": "^7.0.17", + "postcss-attribute-case-insensitive": "^4.0.1", + "postcss-color-functional-notation": "^2.0.1", + "postcss-color-gray": "^5.0.0", + "postcss-color-hex-alpha": "^5.0.3", + "postcss-color-mod-function": "^3.0.3", + "postcss-color-rebeccapurple": "^4.0.1", + "postcss-custom-media": "^7.0.8", + "postcss-custom-properties": "^8.0.11", + "postcss-custom-selectors": "^5.1.2", + "postcss-dir-pseudo-class": "^5.0.0", + "postcss-double-position-gradients": "^1.0.0", + "postcss-env-function": "^2.0.2", + "postcss-focus-visible": "^4.0.0", + "postcss-focus-within": "^3.0.0", + "postcss-font-variant": "^4.0.0", + "postcss-gap-properties": "^2.0.0", + "postcss-image-set-function": "^3.0.1", + "postcss-initial": "^3.0.0", + "postcss-lab-function": "^2.0.1", + "postcss-logical": "^3.0.0", + "postcss-media-minmax": "^4.0.0", + "postcss-nesting": "^7.0.0", + "postcss-overflow-shorthand": "^2.0.0", + "postcss-page-break": "^2.0.0", + "postcss-place": "^4.0.1", + "postcss-pseudo-class-any-link": "^6.0.0", + "postcss-replace-overflow-wrap": "^3.0.0", + "postcss-selector-matches": "^4.0.0", + "postcss-selector-not": "^4.0.0" + } + }, + "postcss-pseudo-class-any-link": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz", + "integrity": "sha512-lgXW9sYJdLqtmw23otOzrtbDXofUdfYzNm4PIpNE322/swES3VU9XlXHeJS46zT2onFO7V1QFdD4Q9LiZj8mew==", + "requires": { + "postcss": "^7.0.2", + "postcss-selector-parser": "^5.0.0-rc.3" + }, + "dependencies": { + "cssesc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", + "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==" + }, + "postcss-selector-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", + "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", + "requires": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-reduce-initial": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", + "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0" + } + }, + "postcss-reduce-transforms": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", + "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", + "requires": { + "cssnano-util-get-match": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-replace-overflow-wrap": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz", + "integrity": "sha512-2T5hcEHArDT6X9+9dVSPQdo7QHzG4XKclFT8rU5TzJPDN7RIRTbO9c4drUISOVemLj03aezStHCR2AIcr8XLpw==", + "requires": { + "postcss": "^7.0.2" + } + }, + "postcss-safe-parser": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-5.0.2.tgz", + "integrity": "sha512-jDUfCPJbKOABhwpUKcqCVbbXiloe/QXMcbJ6Iipf3sDIihEzTqRCeMBfRaOHxhBuTYqtASrI1KJWxzztZU4qUQ==", + "requires": { + "postcss": "^8.1.0" + }, + "dependencies": { + "postcss": { + "version": "8.2.8", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.8.tgz", + "integrity": "sha512-1F0Xb2T21xET7oQV9eKuctbM9S7BC0fetoHCc4H13z0PT6haiRLP4T0ZY4XWh7iLP0usgqykT6p9B2RtOf4FPw==", + "requires": { + "colorette": "^1.2.2", + "nanoid": "^3.1.20", + "source-map": "^0.6.1" + } + } + } + }, + "postcss-selector-matches": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz", + "integrity": "sha512-LgsHwQR/EsRYSqlwdGzeaPKVT0Ml7LAT6E75T8W8xLJY62CE4S/l03BWIt3jT8Taq22kXP08s2SfTSzaraoPww==", + "requires": { + "balanced-match": "^1.0.0", + "postcss": "^7.0.2" + } + }, + "postcss-selector-not": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-4.0.1.tgz", + "integrity": "sha512-YolvBgInEK5/79C+bdFMyzqTg6pkYqDbzZIST/PDMqa/o3qtXenD05apBG2jLgT0/BQ77d4U2UK12jWpilqMAQ==", + "requires": { + "balanced-match": "^1.0.0", + "postcss": "^7.0.2" + } + }, + "postcss-selector-parser": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz", + "integrity": "sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==", + "requires": { + "cssesc": "^3.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1", + "util-deprecate": "^1.0.2" + } + }, + "postcss-svgo": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz", + "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==", + "requires": { + "is-svg": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "svgo": "^1.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "postcss-unique-selectors": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", + "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", + "requires": { + "alphanum-sort": "^1.0.0", + "postcss": "^7.0.0", + "uniqs": "^2.0.0" + } + }, + "postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==" + }, + "postcss-values-parser": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz", + "integrity": "sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg==", + "requires": { + "flatten": "^1.0.2", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==" + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=" + }, + "pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==" + }, + "pretty-error": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz", + "integrity": "sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==", + "requires": { + "lodash": "^4.17.20", + "renderkid": "^2.0.4" + } + }, + "pretty-format": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", + "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "requires": { + "@jest/types": "^26.6.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^17.0.1" + } + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" + }, + "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==" + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" + }, + "promise": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.1.0.tgz", + "integrity": "sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q==", + "requires": { + "asap": "~2.0.6" + } + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" + }, + "prompts": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.0.tgz", + "integrity": "sha512-awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ==", + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + } + }, + "prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + }, + "dependencies": { + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + } + } + }, + "proxy-addr": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", + "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", + "requires": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.1" + } + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + }, + "query-string": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", + "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "requires": { + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, + "querystring": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.1.tgz", + "integrity": "sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg==" + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" + }, + "querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + }, + "queue-microtask": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.2.tgz", + "integrity": "sha512-dB15eXv3p2jDlbOiNLyMabYg1/sXvppd8DP2J3EOCQ0AkuSXCW2tP7mnVouVLJKgUMY6yP0kcQDVpLCN13h4Xg==" + }, + "raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "requires": { + "performance-now": "^2.1.0" + } + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + }, + "raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + } + } + }, + "react": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/react/-/react-17.0.1.tgz", + "integrity": "sha512-lG9c9UuMHdcAexXtigOZLX8exLWkW0Ku29qPRU8uhF2R9BN96dLCt0psvzPLlHc5OWkgymP3qwTRgbnw5BKx3w==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "react-app-polyfill": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/react-app-polyfill/-/react-app-polyfill-2.0.0.tgz", + "integrity": "sha512-0sF4ny9v/B7s6aoehwze9vJNWcmCemAUYBVasscVr92+UYiEqDXOxfKjXN685mDaMRNF3WdhHQs76oTODMocFA==", + "requires": { + "core-js": "^3.6.5", + "object-assign": "^4.1.1", + "promise": "^8.1.0", + "raf": "^3.4.1", + "regenerator-runtime": "^0.13.7", + "whatwg-fetch": "^3.4.1" + } + }, + "react-dev-utils": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-11.0.4.tgz", + "integrity": "sha512-dx0LvIGHcOPtKbeiSUM4jqpBl3TcY7CDjZdfOIcKeznE7BWr9dg0iPG90G5yfVQ+p/rGNMXdbfStvzQZEVEi4A==", + "requires": { + "@babel/code-frame": "7.10.4", + "address": "1.1.2", + "browserslist": "4.14.2", + "chalk": "2.4.2", + "cross-spawn": "7.0.3", + "detect-port-alt": "1.1.6", + "escape-string-regexp": "2.0.0", + "filesize": "6.1.0", + "find-up": "4.1.0", + "fork-ts-checker-webpack-plugin": "4.1.6", + "global-modules": "2.0.0", + "globby": "11.0.1", + "gzip-size": "5.1.1", + "immer": "8.0.1", + "is-root": "2.1.0", + "loader-utils": "2.0.0", + "open": "^7.0.2", + "pkg-up": "3.1.0", + "prompts": "2.4.0", + "react-error-overlay": "^6.0.9", + "recursive-readdir": "2.2.2", + "shell-quote": "1.7.2", + "strip-ansi": "6.0.0", + "text-table": "0.2.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", + "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "browserslist": { + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.14.2.tgz", + "integrity": "sha512-HI4lPveGKUR0x2StIz+2FXfDk9SfVMrxn6PLh1JeGUwcuoDkdKZebWiyLRJ68iIPDpMI4JLVDf7S7XzslgWOhw==", + "requires": { + "caniuse-lite": "^1.0.30001125", + "electron-to-chromium": "^1.3.564", + "escalade": "^3.0.2", + "node-releases": "^1.1.61" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + } + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" + }, + "globby": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz", + "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==", + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "react-dom": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.1.tgz", + "integrity": "sha512-6eV150oJZ9U2t9svnsspTMrWNyHc6chX0KzDeAOXftRa8bNeOKTTfCJ7KorIwenkHd2xqVTBTCZd79yk/lx/Ug==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "scheduler": "^0.20.1" + } + }, + "react-error-overlay": { + "version": "6.0.9", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.9.tgz", + "integrity": "sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew==" + }, + "react-is": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.1.tgz", + "integrity": "sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA==" + }, + "react-refresh": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.8.3.tgz", + "integrity": "sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg==" + }, + "react-router": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.2.0.tgz", + "integrity": "sha512-smz1DUuFHRKdcJC0jobGo8cVbhO3x50tCL4icacOlcwDOEQPq4TMqwx3sY1TP+DvtTgz4nm3thuo7A+BK2U0Dw==", + "requires": { + "@babel/runtime": "^7.1.2", + "history": "^4.9.0", + "hoist-non-react-statics": "^3.1.0", + "loose-envify": "^1.3.1", + "mini-create-react-context": "^0.4.0", + "path-to-regexp": "^1.7.0", + "prop-types": "^15.6.2", + "react-is": "^16.6.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "path-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "requires": { + "isarray": "0.0.1" + } + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + } + } + }, + "react-router-dom": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.2.0.tgz", + "integrity": "sha512-gxAmfylo2QUjcwxI63RhQ5G85Qqt4voZpUXSEqCwykV0baaOTQDR1f0PmY8AELqIyVc0NEZUj0Gov5lNGcXgsA==", + "requires": { + "@babel/runtime": "^7.1.2", + "history": "^4.9.0", + "loose-envify": "^1.3.1", + "prop-types": "^15.6.2", + "react-router": "5.2.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + } + }, + "react-scripts": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-4.0.1.tgz", + "integrity": "sha512-NnniMSC/wjwhcJAyPJCWtxx6CWONqgvGgV9+QXj1bwoW/JI++YF1eEf3Upf/mQ9KmP57IBdjzWs1XvnPq7qMTQ==", + "requires": { + "@babel/core": "7.12.3", + "@pmmmwh/react-refresh-webpack-plugin": "0.4.2", + "@svgr/webpack": "5.4.0", + "@typescript-eslint/eslint-plugin": "^4.5.0", + "@typescript-eslint/parser": "^4.5.0", + "babel-eslint": "^10.1.0", + "babel-jest": "^26.6.0", + "babel-loader": "8.1.0", + "babel-plugin-named-asset-import": "^0.3.7", + "babel-preset-react-app": "^10.0.0", + "bfj": "^7.0.2", + "camelcase": "^6.1.0", + "case-sensitive-paths-webpack-plugin": "2.3.0", + "css-loader": "4.3.0", + "dotenv": "8.2.0", + "dotenv-expand": "5.1.0", + "eslint": "^7.11.0", + "eslint-config-react-app": "^6.0.0", + "eslint-plugin-flowtype": "^5.2.0", + "eslint-plugin-import": "^2.22.1", + "eslint-plugin-jest": "^24.1.0", + "eslint-plugin-jsx-a11y": "^6.3.1", + "eslint-plugin-react": "^7.21.5", + "eslint-plugin-react-hooks": "^4.2.0", + "eslint-plugin-testing-library": "^3.9.2", + "eslint-webpack-plugin": "^2.1.0", + "file-loader": "6.1.1", + "fs-extra": "^9.0.1", + "fsevents": "^2.1.3", + "html-webpack-plugin": "4.5.0", + "identity-obj-proxy": "3.0.0", + "jest": "26.6.0", + "jest-circus": "26.6.0", + "jest-resolve": "26.6.0", + "jest-watch-typeahead": "0.6.1", + "mini-css-extract-plugin": "0.11.3", + "optimize-css-assets-webpack-plugin": "5.0.4", + "pnp-webpack-plugin": "1.6.4", + "postcss-flexbugs-fixes": "4.2.1", + "postcss-loader": "3.0.0", + "postcss-normalize": "8.0.1", + "postcss-preset-env": "6.7.0", + "postcss-safe-parser": "5.0.2", + "prompts": "2.4.0", + "react-app-polyfill": "^2.0.0", + "react-dev-utils": "^11.0.1", + "react-refresh": "^0.8.3", + "resolve": "1.18.1", + "resolve-url-loader": "^3.1.2", + "sass-loader": "8.0.2", + "semver": "7.3.2", + "style-loader": "1.3.0", + "terser-webpack-plugin": "4.2.3", + "ts-pnp": "1.2.0", + "url-loader": "4.1.1", + "webpack": "4.44.2", + "webpack-dev-server": "3.11.0", + "webpack-manifest-plugin": "2.2.0", + "workbox-webpack-plugin": "5.1.4" + } + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "requires": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + }, + "dependencies": { + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "requires": { + "pify": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + } + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "optional": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "recursive-readdir": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", + "integrity": "sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==", + "requires": { + "minimatch": "3.0.4" + } + }, + "redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "requires": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + } + }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + }, + "regenerate-unicode-properties": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", + "requires": { + "regenerate": "^1.4.0" + } + }, + "regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" + }, + "regenerator-transform": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", + "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regex-parser": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", + "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==" + }, + "regexp.prototype.flags": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", + "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "regexpp": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", + "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==" + }, + "regexpu-core": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", + "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==", + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.2.0" + } + }, + "regjsgen": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", + "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==" + }, + "regjsparser": { + "version": "0.6.7", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.7.tgz", + "integrity": "sha512-ib77G0uxsA2ovgiYbCVGx4Pv3PSttAx2vIwidqQzbL2U5S4Q+j00HdSAneSBuyVcMvEnTXMjiGgB+DlXozVhpQ==", + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" + } + } + }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=" + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" + }, + "renderkid": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.5.tgz", + "integrity": "sha512-ccqoLg+HLOHq1vdfYNm4TBeaCDIi1FLt3wGojTDSvdewUv65oTmI3cnT2E4hRjl1gzKZIPK+KZrXzlUYKnR+vQ==", + "requires": { + "css-select": "^2.0.2", + "dom-converter": "^0.2", + "htmlparser2": "^3.10.1", + "lodash": "^4.17.20", + "strip-ansi": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + } + } + }, + "request-promise-core": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", + "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", + "requires": { + "lodash": "^4.17.19" + } + }, + "request-promise-native": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz", + "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==", + "requires": { + "request-promise-core": "1.1.4", + "stealthy-require": "^1.1.1", + "tough-cookie": "^2.3.3" + }, + "dependencies": { + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + } + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" + }, + "resolve": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.18.1.tgz", + "integrity": "sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA==", + "requires": { + "is-core-module": "^2.0.0", + "path-parse": "^1.0.6" + } + }, + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "requires": { + "resolve-from": "^5.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" + } + } + }, + "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==" + }, + "resolve-pathname": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", + "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==" + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" + }, + "resolve-url-loader": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-3.1.2.tgz", + "integrity": "sha512-QEb4A76c8Mi7I3xNKXlRKQSlLBwjUV/ULFMP+G7n3/7tJZ8MG5wsZ3ucxP1Jz8Vevn6fnJsxDx9cIls+utGzPQ==", + "requires": { + "adjust-sourcemap-loader": "3.0.0", + "camelcase": "5.3.1", + "compose-function": "3.0.3", + "convert-source-map": "1.7.0", + "es6-iterator": "2.0.3", + "loader-utils": "1.2.3", + "postcss": "7.0.21", + "rework": "1.0.1", + "rework-visit": "1.0.0", + "source-map": "0.6.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + } + }, + "postcss": { + "version": "7.0.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.21.tgz", + "integrity": "sha512-uIFtJElxJo29QC753JzhidoAhvp/e/Exezkdhfmt8AymWT6/5B7W1WmponYWkHk2eg6sONyTch0A3nkMPun3SQ==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" + }, + "retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=" + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + }, + "rework": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rework/-/rework-1.0.1.tgz", + "integrity": "sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc=", + "requires": { + "convert-source-map": "^0.3.3", + "css": "^2.0.0" + }, + "dependencies": { + "convert-source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-0.3.5.tgz", + "integrity": "sha1-8dgClQr33SYxof6+BZZVDIarMZA=" + }, + "css": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", + "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", + "requires": { + "inherits": "^2.0.3", + "source-map": "^0.6.1", + "source-map-resolve": "^0.5.2", + "urix": "^0.1.0" + } + }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + } + } + }, + "rework-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rework-visit/-/rework-visit-1.0.0.tgz", + "integrity": "sha1-mUWygD8hni96ygCtuLyfZA+ELJo=" + }, + "rgb-regex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", + "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=" + }, + "rgba-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", + "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=" + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "requires": { + "glob": "^7.1.3" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "rollup": { + "version": "1.32.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-1.32.1.tgz", + "integrity": "sha512-/2HA0Ec70TvQnXdzynFffkjA6XN+1e2pEv/uKS5Ulca40g2L7KuOE3riasHoNVHOsFD5KKZgDsMk1CP3Tw9s+A==", + "requires": { + "@types/estree": "*", + "@types/node": "*", + "acorn": "^7.1.0" + } + }, + "rollup-plugin-babel": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-babel/-/rollup-plugin-babel-4.4.0.tgz", + "integrity": "sha512-Lek/TYp1+7g7I+uMfJnnSJ7YWoD58ajo6Oarhlex7lvUce+RCKRuGRSgztDO3/MF/PuGKmUL5iTHKf208UNszw==", + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "rollup-pluginutils": "^2.8.1" + } + }, + "rollup-plugin-terser": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-5.3.1.tgz", + "integrity": "sha512-1pkwkervMJQGFYvM9nscrUoncPwiKR/K+bHdjv6PFgRo3cgPHoRT83y2Aa3GvINj4539S15t/tpFPb775TDs6w==", + "requires": { + "@babel/code-frame": "^7.5.5", + "jest-worker": "^24.9.0", + "rollup-pluginutils": "^2.8.2", + "serialize-javascript": "^4.0.0", + "terser": "^4.6.2" + }, + "dependencies": { + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "jest-worker": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz", + "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==", + "requires": { + "merge-stream": "^2.0.0", + "supports-color": "^6.1.0" + } + }, + "serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "requires": { + "randombytes": "^2.1.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "rollup-pluginutils": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", + "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", + "requires": { + "estree-walker": "^0.6.1" + }, + "dependencies": { + "estree-walker": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==" + } + } + }, + "rsvp": { + "version": "4.8.5", + "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", + "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==" + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "requires": { + "aproba": "^1.1.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "sane": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", + "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", + "requires": { + "@cnakazawa/watch": "^1.0.3", + "anymatch": "^2.0.0", + "capture-exit": "^2.0.0", + "exec-sh": "^0.3.2", + "execa": "^1.0.0", + "fb-watchman": "^2.0.0", + "micromatch": "^3.1.4", + "minimist": "^1.1.1", + "walker": "~1.0.5" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "sanitize.css": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/sanitize.css/-/sanitize.css-10.0.0.tgz", + "integrity": "sha512-vTxrZz4dX5W86M6oVWVdOVe72ZiPs41Oi7Z6Km4W5Turyz28mrXSJhhEBZoRtzJWIv3833WKVwLSDWWkEfupMg==" + }, + "sass-loader": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-8.0.2.tgz", + "integrity": "sha512-7o4dbSK8/Ol2KflEmSco4jTjQoV988bM82P9CZdmo9hR3RLnvNc0ufMNdMrB0caq38JQ/FgF4/7RcbcfKzxoFQ==", + "requires": { + "clone-deep": "^4.0.1", + "loader-utils": "^1.2.3", + "neo-async": "^2.6.1", + "schema-utils": "^2.6.1", + "semver": "^6.3.0" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "requires": { + "xmlchars": "^2.2.0" + } + }, + "scheduler": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.1.tgz", + "integrity": "sha512-LKTe+2xNJBNxu/QhHvDR14wUXHRQbVY5ZOYpOGWRzhydZUqrLb2JBvLPY7cAqFmqrWuDED0Mjk7013SZiOz6Bw==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + } + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" + }, + "selfsigned": { + "version": "1.10.8", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz", + "integrity": "sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==", + "requires": { + "node-forge": "^0.10.0" + } + }, + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==" + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + } + } + }, + "serialize-javascript": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", + "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", + "requires": { + "randombytes": "^2.1.0" + } + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "requires": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + } + } + }, + "serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "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==", + "requires": { + "kind-of": "^6.0.2" + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + }, + "shell-quote": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", + "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==" + }, + "shellwords": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", + "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", + "optional": true + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + }, + "simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "requires": { + "is-arrayish": "^0.3.1" + }, + "dependencies": { + "is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + } + } + }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + }, + "slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "sockjs": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.20.tgz", + "integrity": "sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA==", + "requires": { + "faye-websocket": "^0.10.0", + "uuid": "^3.4.0", + "websocket-driver": "0.6.5" + }, + "dependencies": { + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + } + } + }, + "sockjs-client": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz", + "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==", + "requires": { + "debug": "^3.2.5", + "eventsource": "^1.0.7", + "faye-websocket": "~0.11.1", + "inherits": "^2.0.3", + "json3": "^3.3.2", + "url-parse": "^1.4.3" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "faye-websocket": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", + "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", + "requires": { + "websocket-driver": ">=0.5.1" + } + } + } + }, + "sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "requires": { + "is-plain-obj": "^1.0.0" + } + }, + "source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-resolve": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0" + } + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==" + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", + "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==" + }, + "spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "requires": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + } + }, + "spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "requires": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "requires": { + "minipass": "^3.1.1" + } + }, + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" + }, + "stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw==", + "requires": { + "escape-string-regexp": "^2.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" + } + } + }, + "stackframe": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.2.0.tgz", + "integrity": "sha512-GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA==" + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, + "stealthy-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", + "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=" + }, + "stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" + }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" + }, + "string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "requires": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + } + }, + "string-natural-compare": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz", + "integrity": "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==" + }, + "string-width": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "string.prototype.matchall": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.4.tgz", + "integrity": "sha512-pknFIWVachNcyqRfaQSeu/FUfpvJTe4uskUSZ9Wc1RijsPuzbZ8TyYT8WCNnntCjUEqQ3vUHMAfVj2+wLAisPQ==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2", + "has-symbols": "^1.0.1", + "internal-slot": "^1.0.3", + "regexp.prototype.flags": "^1.3.1", + "side-channel": "^1.0.4" + } + }, + "string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + } + } + }, + "stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "requires": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + }, + "dependencies": { + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" + } + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" + }, + "strip-comments": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-1.0.2.tgz", + "integrity": "sha512-kL97alc47hoyIQSV165tTt9rG5dn4w1dNnBhOQ3bOU1Nc1hel09jnXANaHJ7vzHLd4Ju8kseDGzlev96pghLFw==", + "requires": { + "babel-extract-comments": "^1.0.0", + "babel-plugin-transform-object-rest-spread": "^6.26.0" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" + }, + "strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "requires": { + "min-indent": "^1.0.0" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" + }, + "style-loader": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-1.3.0.tgz", + "integrity": "sha512-V7TCORko8rs9rIqkSrlMfkqA63DfoGBBJmK1kKGCcSi+BWb4cqz0SRsnp4l6rU5iwOEd0/2ePv68SV22VXon4Q==", + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^2.7.0" + } + }, + "stylehacks": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", + "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-hyperlinks": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz", + "integrity": "sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA==", + "requires": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + } + }, + "svg-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" + }, + "svgo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "requires": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" + }, + "table": { + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/table/-/table-6.0.7.tgz", + "integrity": "sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==", + "requires": { + "ajv": "^7.0.2", + "lodash": "^4.17.20", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.0" + }, + "dependencies": { + "ajv": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.2.1.tgz", + "integrity": "sha512-+nu0HDv7kNSOua9apAVc979qd932rrZeb3WOvoiD31A/p1mIE5/9bN2027pE2rOPYEdS3UHzsvof4hY+lM9/WQ==", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + } + } + }, + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==" + }, + "tar": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.0.tgz", + "integrity": "sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA==", + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + } + } + }, + "temp-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz", + "integrity": "sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0=" + }, + "tempy": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.3.0.tgz", + "integrity": "sha512-WrH/pui8YCwmeiAoxV+lpRH9HpRtgBhSR2ViBPgpGb/wnYDzp21R4MN45fsCGvLROvY67o3byhJRYRONJyImVQ==", + "requires": { + "temp-dir": "^1.0.0", + "type-fest": "^0.3.1", + "unique-string": "^1.0.0" + }, + "dependencies": { + "type-fest": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", + "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==" + } + } + }, + "terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "requires": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + } + }, + "terser": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", + "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + } + } + }, + "terser-webpack-plugin": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-4.2.3.tgz", + "integrity": "sha512-jTgXh40RnvOrLQNgIkwEKnQ8rmHjHK4u+6UBEi+W+FPmvb+uo+chJXntKe7/3lW5mNysgSWD60KyesnhW8D6MQ==", + "requires": { + "cacache": "^15.0.5", + "find-cache-dir": "^3.3.1", + "jest-worker": "^26.5.0", + "p-limit": "^3.0.2", + "schema-utils": "^3.0.0", + "serialize-javascript": "^5.0.1", + "source-map": "^0.6.1", + "terser": "^5.3.4", + "webpack-sources": "^1.4.3" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "requires": { + "semver": "^6.0.0" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "requires": { + "find-up": "^4.0.0" + } + }, + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + }, + "terser": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.6.1.tgz", + "integrity": "sha512-yv9YLFQQ+3ZqgWCUk+pvNJwgUTdlIxUk1WTN+RnaFJe2L7ipG2csPT0ra2XRm7Cs8cxN7QXmK1rFzEwYEQkzXw==", + "requires": { + "commander": "^2.20.0", + "source-map": "~0.7.2", + "source-map-support": "~0.5.19" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" + } + } + } + } + }, + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" + }, + "throat": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz", + "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==" + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" + }, + "timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "requires": { + "setimmediate": "^1.0.4" + } + }, + "timsort": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", + "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=" + }, + "tiny-invariant": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.1.0.tgz", + "integrity": "sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw==" + }, + "tiny-warning": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" + }, + "tmpl": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", + "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=" + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + }, + "tough-cookie": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", + "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", + "requires": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.1.2" + }, + "dependencies": { + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + } + } + }, + "tr46": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.0.2.tgz", + "integrity": "sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg==", + "requires": { + "punycode": "^2.1.1" + } + }, + "tryer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", + "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==" + }, + "ts-pnp": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz", + "integrity": "sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==" + }, + "tsconfig-paths": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz", + "integrity": "sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==", + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.0", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } + } + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "requires": { + "tslib": "^1.8.1" + } + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + }, + "type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "unbox-primitive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.0.tgz", + "integrity": "sha512-P/51NX+JXyxK/aigg1/ZgyccdAxm5K1+n8+tvqSntjOivPt19gvm1VC49RWYetsiub8WViUchdxl/KWHHB0kzA==", + "requires": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.0", + "has-symbols": "^1.0.0", + "which-boxed-primitive": "^1.0.1" + } + }, + "unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==" + }, + "unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "requires": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==" + }, + "unicode-property-aliases-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==" + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=" + }, + "uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", + "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=" + }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "unique-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", + "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", + "requires": { + "crypto-random-string": "^1.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=" + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + } + } + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==" + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" + } + } + }, + "url-loader": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", + "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", + "requires": { + "loader-utils": "^2.0.0", + "mime-types": "^2.1.27", + "schema-utils": "^3.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "url-parse": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.1.tgz", + "integrity": "sha512-HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q==", + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" + }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + } + }, + "utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "optional": true + }, + "v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==" + }, + "v8-to-istanbul": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.0.tgz", + "integrity": "sha512-uXUVqNUCLa0AH1vuVxzi+MI4RfxEOKt9pBgKwHbgH7st8Kv2P1m+jvWNnektzBh5QShF3ODgKmUFCf38LnVz1g==", + "requires": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" + } + } + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "value-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", + "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "vendors": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", + "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==" + }, + "w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "requires": { + "browser-process-hrtime": "^1.0.0" + } + }, + "w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "requires": { + "xml-name-validator": "^3.0.0" + } + }, + "walker": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", + "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", + "requires": { + "makeerror": "1.0.x" + } + }, + "watchpack": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", + "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", + "requires": { + "chokidar": "^3.4.1", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0", + "watchpack-chokidar2": "^2.0.1" + } + }, + "watchpack-chokidar2": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", + "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", + "optional": true, + "requires": { + "chokidar": "^2.1.8" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "optional": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "optional": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "optional": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "optional": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "optional": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "optional": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "optional": true + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "optional": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "optional": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "optional": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "optional": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "optional": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "optional": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "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==", + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "optional": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "requires": { + "minimalistic-assert": "^1.0.0" + } + }, + "web-vitals": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-0.2.4.tgz", + "integrity": "sha512-6BjspCO9VriYy12z356nL6JBS0GYeEcA457YyRzD+dD6XYCQ75NKhcOHUMHentOE7OcVCIXXDvOm0jKFfQG2Gg==" + }, + "webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==" + }, + "webpack": { + "version": "4.44.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.44.2.tgz", + "integrity": "sha512-6KJVGlCxYdISyurpQ0IPTklv+DULv05rs2hseIXer6D7KrUicRDLFb4IUM1S6LUAKypPM/nSiVSuv8jHu1m3/Q==", + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/wasm-edit": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "acorn": "^6.4.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.3.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.3", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.3", + "watchpack": "^1.7.4", + "webpack-sources": "^1.4.1" + }, + "dependencies": { + "acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==" + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + }, + "eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "requires": { + "yallist": "^3.0.2" + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "requires": { + "randombytes": "^2.1.0" + } + }, + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "terser-webpack-plugin": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", + "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", + "requires": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + } + } + }, + "webpack-dev-middleware": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz", + "integrity": "sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ==", + "requires": { + "memory-fs": "^0.4.1", + "mime": "^2.4.4", + "mkdirp": "^0.5.1", + "range-parser": "^1.2.1", + "webpack-log": "^2.0.0" + }, + "dependencies": { + "mime": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", + "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==" + } + } + }, + "webpack-dev-server": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz", + "integrity": "sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg==", + "requires": { + "ansi-html": "0.0.7", + "bonjour": "^3.5.0", + "chokidar": "^2.1.8", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "debug": "^4.1.1", + "del": "^4.1.1", + "express": "^4.17.1", + "html-entities": "^1.3.1", + "http-proxy-middleware": "0.19.1", + "import-local": "^2.0.0", + "internal-ip": "^4.3.0", + "ip": "^1.1.5", + "is-absolute-url": "^3.0.3", + "killable": "^1.0.1", + "loglevel": "^1.6.8", + "opn": "^5.5.0", + "p-retry": "^3.0.1", + "portfinder": "^1.0.26", + "schema-utils": "^1.0.0", + "selfsigned": "^1.10.7", + "semver": "^6.3.0", + "serve-index": "^1.9.1", + "sockjs": "0.3.20", + "sockjs-client": "1.4.0", + "spdy": "^4.0.2", + "strip-ansi": "^3.0.1", + "supports-color": "^6.1.0", + "url": "^0.11.0", + "webpack-dev-middleware": "^3.7.2", + "webpack-log": "^2.0.0", + "ws": "^6.2.1", + "yargs": "^13.3.2" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==" + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "optional": true + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "import-local": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", + "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "requires": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + } + }, + "is-absolute-url": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", + "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==" + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "requires": { + "resolve-from": "^3.0.0" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "ws": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", + "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", + "requires": { + "async-limiter": "~1.0.0" + } + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "webpack-log": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", + "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", + "requires": { + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "ansi-colors": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==" + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + } + } + }, + "webpack-manifest-plugin": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-2.2.0.tgz", + "integrity": "sha512-9S6YyKKKh/Oz/eryM1RyLVDVmy3NSPV0JXMRhZ18fJsq+AwGxUY34X54VNwkzYcEmEkDwNxuEOboCZEebJXBAQ==", + "requires": { + "fs-extra": "^7.0.0", + "lodash": ">=3.5 <5", + "object.entries": "^1.1.0", + "tapable": "^1.0.0" + }, + "dependencies": { + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + } + } + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "websocket-driver": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz", + "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=", + "requires": { + "websocket-extensions": ">=0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==" + }, + "whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "requires": { + "iconv-lite": "0.4.24" + } + }, + "whatwg-fetch": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", + "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==" + }, + "whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" + }, + "whatwg-url": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.4.0.tgz", + "integrity": "sha512-vwTUFf6V4zhcPkWp/4CQPr1TW9Ml6SF4lVyaIMBdJw5i6qUUJ1QWM4Z6YYVkfka0OUIzVo/0aNtGVGk256IKWw==", + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^2.0.2", + "webidl-conversions": "^6.1.0" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" + }, + "workbox-background-sync": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-5.1.4.tgz", + "integrity": "sha512-AH6x5pYq4vwQvfRDWH+vfOePfPIYQ00nCEB7dJRU1e0n9+9HMRyvI63FlDvtFT2AvXVRsXvUt7DNMEToyJLpSA==", + "requires": { + "workbox-core": "^5.1.4" + } + }, + "workbox-broadcast-update": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-5.1.4.tgz", + "integrity": "sha512-HTyTWkqXvHRuqY73XrwvXPud/FN6x3ROzkfFPsRjtw/kGZuZkPzfeH531qdUGfhtwjmtO/ZzXcWErqVzJNdXaA==", + "requires": { + "workbox-core": "^5.1.4" + } + }, + "workbox-build": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-5.1.4.tgz", + "integrity": "sha512-xUcZn6SYU8usjOlfLb9Y2/f86Gdo+fy1fXgH8tJHjxgpo53VVsqRX0lUDw8/JuyzNmXuo8vXX14pXX2oIm9Bow==", + "requires": { + "@babel/core": "^7.8.4", + "@babel/preset-env": "^7.8.4", + "@babel/runtime": "^7.8.4", + "@hapi/joi": "^15.1.0", + "@rollup/plugin-node-resolve": "^7.1.1", + "@rollup/plugin-replace": "^2.3.1", + "@surma/rollup-plugin-off-main-thread": "^1.1.1", + "common-tags": "^1.8.0", + "fast-json-stable-stringify": "^2.1.0", + "fs-extra": "^8.1.0", + "glob": "^7.1.6", + "lodash.template": "^4.5.0", + "pretty-bytes": "^5.3.0", + "rollup": "^1.31.1", + "rollup-plugin-babel": "^4.3.3", + "rollup-plugin-terser": "^5.3.1", + "source-map": "^0.7.3", + "source-map-url": "^0.4.0", + "stringify-object": "^3.3.0", + "strip-comments": "^1.0.2", + "tempy": "^0.3.0", + "upath": "^1.2.0", + "workbox-background-sync": "^5.1.4", + "workbox-broadcast-update": "^5.1.4", + "workbox-cacheable-response": "^5.1.4", + "workbox-core": "^5.1.4", + "workbox-expiration": "^5.1.4", + "workbox-google-analytics": "^5.1.4", + "workbox-navigation-preload": "^5.1.4", + "workbox-precaching": "^5.1.4", + "workbox-range-requests": "^5.1.4", + "workbox-routing": "^5.1.4", + "workbox-strategies": "^5.1.4", + "workbox-streams": "^5.1.4", + "workbox-sw": "^5.1.4", + "workbox-window": "^5.1.4" + }, + "dependencies": { + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + } + } + }, + "workbox-cacheable-response": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-5.1.4.tgz", + "integrity": "sha512-0bfvMZs0Of1S5cdswfQK0BXt6ulU5kVD4lwer2CeI+03czHprXR3V4Y8lPTooamn7eHP8Iywi5QjyAMjw0qauA==", + "requires": { + "workbox-core": "^5.1.4" + } + }, + "workbox-core": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-5.1.4.tgz", + "integrity": "sha512-+4iRQan/1D8I81nR2L5vcbaaFskZC2CL17TLbvWVzQ4qiF/ytOGF6XeV54pVxAvKUtkLANhk8TyIUMtiMw2oDg==" + }, + "workbox-expiration": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-5.1.4.tgz", + "integrity": "sha512-oDO/5iC65h2Eq7jctAv858W2+CeRW5e0jZBMNRXpzp0ZPvuT6GblUiHnAsC5W5lANs1QS9atVOm4ifrBiYY7AQ==", + "requires": { + "workbox-core": "^5.1.4" + } + }, + "workbox-google-analytics": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-5.1.4.tgz", + "integrity": "sha512-0IFhKoEVrreHpKgcOoddV+oIaVXBFKXUzJVBI+nb0bxmcwYuZMdteBTp8AEDJacENtc9xbR0wa9RDCnYsCDLjA==", + "requires": { + "workbox-background-sync": "^5.1.4", + "workbox-core": "^5.1.4", + "workbox-routing": "^5.1.4", + "workbox-strategies": "^5.1.4" + } + }, + "workbox-navigation-preload": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-5.1.4.tgz", + "integrity": "sha512-Wf03osvK0wTflAfKXba//QmWC5BIaIZARU03JIhAEO2wSB2BDROWI8Q/zmianf54kdV7e1eLaIEZhth4K4MyfQ==", + "requires": { + "workbox-core": "^5.1.4" + } + }, + "workbox-precaching": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-5.1.4.tgz", + "integrity": "sha512-gCIFrBXmVQLFwvAzuGLCmkUYGVhBb7D1k/IL7pUJUO5xacjLcFUaLnnsoVepBGAiKw34HU1y/YuqvTKim9qAZA==", + "requires": { + "workbox-core": "^5.1.4" + } + }, + "workbox-range-requests": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-5.1.4.tgz", + "integrity": "sha512-1HSujLjgTeoxHrMR2muDW2dKdxqCGMc1KbeyGcmjZZAizJTFwu7CWLDmLv6O1ceWYrhfuLFJO+umYMddk2XMhw==", + "requires": { + "workbox-core": "^5.1.4" + } + }, + "workbox-routing": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-5.1.4.tgz", + "integrity": "sha512-8ljknRfqE1vEQtnMtzfksL+UXO822jJlHTIR7+BtJuxQ17+WPZfsHqvk1ynR/v0EHik4x2+826Hkwpgh4GKDCw==", + "requires": { + "workbox-core": "^5.1.4" + } + }, + "workbox-strategies": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-5.1.4.tgz", + "integrity": "sha512-VVS57LpaJTdjW3RgZvPwX0NlhNmscR7OQ9bP+N/34cYMDzXLyA6kqWffP6QKXSkca1OFo/v6v7hW7zrrguo6EA==", + "requires": { + "workbox-core": "^5.1.4", + "workbox-routing": "^5.1.4" + } + }, + "workbox-streams": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-5.1.4.tgz", + "integrity": "sha512-xU8yuF1hI/XcVhJUAfbQLa1guQUhdLMPQJkdT0kn6HP5CwiPOGiXnSFq80rAG4b1kJUChQQIGPrq439FQUNVrw==", + "requires": { + "workbox-core": "^5.1.4", + "workbox-routing": "^5.1.4" + } + }, + "workbox-sw": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-5.1.4.tgz", + "integrity": "sha512-9xKnKw95aXwSNc8kk8gki4HU0g0W6KXu+xks7wFuC7h0sembFnTrKtckqZxbSod41TDaGh+gWUA5IRXrL0ECRA==" + }, + "workbox-webpack-plugin": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-5.1.4.tgz", + "integrity": "sha512-PZafF4HpugZndqISi3rZ4ZK4A4DxO8rAqt2FwRptgsDx7NF8TVKP86/huHquUsRjMGQllsNdn4FNl8CD/UvKmQ==", + "requires": { + "@babel/runtime": "^7.5.5", + "fast-json-stable-stringify": "^2.0.0", + "source-map-url": "^0.4.0", + "upath": "^1.1.2", + "webpack-sources": "^1.3.0", + "workbox-build": "^5.1.4" + } + }, + "workbox-window": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-5.1.4.tgz", + "integrity": "sha512-vXQtgTeMCUq/4pBWMfQX8Ee7N2wVC4Q7XYFqLnfbXJ2hqew/cU1uMTD2KqGEgEpE4/30luxIxgE+LkIa8glBYw==", + "requires": { + "workbox-core": "^5.1.4" + } + }, + "worker-farm": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", + "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", + "requires": { + "errno": "~0.1.7" + } + }, + "worker-rpc": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/worker-rpc/-/worker-rpc-0.1.1.tgz", + "integrity": "sha512-P1WjMrUB3qgJNI9jfmpZ/htmBEjFh//6l/5y8SD9hg1Ef5zTTVVoRjTrTEzPrNBQvmhMxkoTsjOXN10GWU7aCg==", + "requires": { + "microevent.ts": "~0.1.1" + } + }, + "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==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "ws": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.4.tgz", + "integrity": "sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw==" + }, + "xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" + }, + "xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "y18n": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==" + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" + }, + "yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + } + } + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" + } + } +} diff --git a/client/package.json b/client/package.json index 4c9c44e..bbe7714 100644 --- a/client/package.json +++ b/client/package.json @@ -8,6 +8,7 @@ "@testing-library/user-event": "^12.1.10", "react": "^17.0.1", "react-dom": "^17.0.1", + "react-router-dom": "^5.2.0", "react-scripts": "4.0.1", "web-vitals": "^0.2.4" }, diff --git a/client/src/App.js b/client/src/App.js index 08fcd8d..2ed6d0b 100644 --- a/client/src/App.js +++ b/client/src/App.js @@ -1,13 +1,25 @@ import logo from './logo.svg'; import './App.css'; +import Error_ from './components/error/Error'; +import history from './history'; +import { + Route, + Router, + Switch, + BrowserRouter as Routerr, +} from 'react-router-dom'; + +import Home from './components/home/Home'; function App() { return ( -
-
-

Hello, All-Notes :)

- -
+
+ + + + + +
); } diff --git a/client/src/components/error/Error.js b/client/src/components/error/Error.js new file mode 100644 index 0000000..7a8181d --- /dev/null +++ b/client/src/components/error/Error.js @@ -0,0 +1,21 @@ +import React from 'react'; +import error_image from './error-screen-desktop.png'; +import { Link, Router } from 'react-router-dom'; +import history from '../../history'; + +function Error() { + return ( +
+

Error 404 !

+ + +
+ Error 404 +
+ +
+
+ ); +} + +export default Error; diff --git a/client/src/components/error/error-screen-desktop.png b/client/src/components/error/error-screen-desktop.png new file mode 100644 index 0000000000000000000000000000000000000000..5b44b44239b06347480b73a1f971927569d2ca46 GIT binary patch literal 125827 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�Ue-lbPo7g5R}DJc*hgHE@V zL7siD=g&L?m`k#wnPHoVsdx81o$G=kV~K~J6d63Es0^8EcZ!m|rlM8g)td*8 zQ#Z^yKOF^y&eeacM#8hfbmGyp%|raPfto81iSS~CzekaDT8m0=d@6Y~-w&%8yO<+% zC~|dH(3l3O9$*O?Ab9`)gcj;p7lDg@AA{?yySXfpNm!^_+#_vU`>BDxmEe8J_X-13 z-`-WffsUxZmS~xw$cmU+u+H($CKfyP&z!CFMD~fAcR9M^Ij&7q&UMy=Arux~j*bC% zv)k`J{z`;%em41ba`xx(^cpx1cE3DyWT6?N%=+!I3emQPX2Klk;Us;yWxM1w5Mq}zP%mrG#Bi4*h&!< zcOtTH;EG+P{kjG-iQOczd^8?>sS6v9lzP+NlX7|<)AMTNa!ZLwroB|HS5btu{S-cr zFRQYxhBRJjS2xD=wGaxN@*6q!pve*&yIWbm)-5$peHh>kgJQz|(Hnu=I{bMyO3ld(tLS>i(+m41m7?lvC_Y8bj={{mZ`{|p z>*`rU}+Dj>n$tceQIG@LNPbL1AhF~%aPy&r~Js#Uc!YZfHiisahvHbEG67uwq$yBP?kOv~NNI{Edmkixs~}q^@0PO$TZ>O-f%SCV zn5vlJtlLu$AS3K-4-u|zNDjt)s2Wzaq;|fprrHG!3XSJ6A~6q;4M>>IP|0|(k&ej1 ziiNlFBnIzW&Dpvgqk4^~+Wq)?(XSy99&4gHZ7|`i zREUn+!#|}*FZA*c`xHa4MBRKxzt0R|v-CgH2K}p!M#@mOAvJi=6$T3XH`pTC$MPQl z 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 E0lW8RWdHyG literal 0 HcmV?d00001 diff --git a/client/src/components/home/Home.js b/client/src/components/home/Home.js new file mode 100644 index 0000000..1385d79 --- /dev/null +++ b/client/src/components/home/Home.js @@ -0,0 +1,13 @@ +import React from 'react'; + +function Home() { + return ( +
+
+

Hello, All-Notes

+
+
+ ); +} + +export default Home; diff --git a/client/src/history.js b/client/src/history.js new file mode 100644 index 0000000..76ea538 --- /dev/null +++ b/client/src/history.js @@ -0,0 +1,3 @@ +const createHistory = require('history').createBrowserHistory; + +export default createHistory(); diff --git a/design/Logo-design b/design/Logo-design deleted file mode 100644 index 8b13789..0000000 --- a/design/Logo-design +++ /dev/null @@ -1 +0,0 @@ - diff --git a/node_modules/.bin/loose-envify b/node_modules/.bin/loose-envify new file mode 100644 index 0000000..bbdb1df --- /dev/null +++ b/node_modules/.bin/loose-envify @@ -0,0 +1,15 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + "$basedir/node" "$basedir/../loose-envify/cli.js" "$@" + ret=$? +else + node "$basedir/../loose-envify/cli.js" "$@" + ret=$? +fi +exit $ret diff --git a/node_modules/.bin/loose-envify.cmd b/node_modules/.bin/loose-envify.cmd new file mode 100644 index 0000000..37b575e --- /dev/null +++ b/node_modules/.bin/loose-envify.cmd @@ -0,0 +1,17 @@ +@ECHO off +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +"%_prog%" "%dp0%\..\loose-envify\cli.js" %* +ENDLOCAL +EXIT /b %errorlevel% +:find_dp0 +SET dp0=%~dp0 +EXIT /b diff --git a/node_modules/.bin/loose-envify.ps1 b/node_modules/.bin/loose-envify.ps1 new file mode 100644 index 0000000..7b96ac6 --- /dev/null +++ b/node_modules/.bin/loose-envify.ps1 @@ -0,0 +1,18 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + & "$basedir/node$exe" "$basedir/../loose-envify/cli.js" $args + $ret=$LASTEXITCODE +} else { + & "node$exe" "$basedir/../loose-envify/cli.js" $args + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/@babel/runtime/LICENSE b/node_modules/@babel/runtime/LICENSE new file mode 100644 index 0000000..f31575e --- /dev/null +++ b/node_modules/@babel/runtime/LICENSE @@ -0,0 +1,22 @@ +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. diff --git a/node_modules/@babel/runtime/README.md b/node_modules/@babel/runtime/README.md new file mode 100644 index 0000000..119c99d --- /dev/null +++ b/node_modules/@babel/runtime/README.md @@ -0,0 +1,19 @@ +# @babel/runtime + +> babel's modular runtime helpers + +See our website [@babel/runtime](https://babeljs.io/docs/en/babel-runtime) for more information. + +## Install + +Using npm: + +```sh +npm install --save @babel/runtime +``` + +or using yarn: + +```sh +yarn add @babel/runtime +``` diff --git a/node_modules/@babel/runtime/helpers/AsyncGenerator.js b/node_modules/@babel/runtime/helpers/AsyncGenerator.js new file mode 100644 index 0000000..8461956 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/AsyncGenerator.js @@ -0,0 +1,101 @@ +var AwaitValue = require("./AwaitValue.js"); + +function AsyncGenerator(gen) { + var front, back; + + function send(key, arg) { + return new Promise(function (resolve, reject) { + var request = { + key: key, + arg: arg, + resolve: resolve, + reject: reject, + next: null + }; + + if (back) { + back = back.next = request; + } else { + front = back = request; + resume(key, arg); + } + }); + } + + function resume(key, arg) { + try { + var result = gen[key](arg); + var value = result.value; + var wrappedAwait = value instanceof AwaitValue; + Promise.resolve(wrappedAwait ? value.wrapped : value).then(function (arg) { + if (wrappedAwait) { + resume(key === "return" ? "return" : "next", arg); + return; + } + + settle(result.done ? "return" : "normal", arg); + }, function (err) { + resume("throw", err); + }); + } catch (err) { + settle("throw", err); + } + } + + function settle(type, value) { + switch (type) { + case "return": + front.resolve({ + value: value, + done: true + }); + break; + + case "throw": + front.reject(value); + break; + + default: + front.resolve({ + value: value, + done: false + }); + break; + } + + front = front.next; + + if (front) { + resume(front.key, front.arg); + } else { + back = null; + } + } + + this._invoke = send; + + if (typeof gen["return"] !== "function") { + this["return"] = undefined; + } +} + +if (typeof Symbol === "function" && Symbol.asyncIterator) { + AsyncGenerator.prototype[Symbol.asyncIterator] = function () { + return this; + }; +} + +AsyncGenerator.prototype.next = function (arg) { + return this._invoke("next", arg); +}; + +AsyncGenerator.prototype["throw"] = function (arg) { + return this._invoke("throw", arg); +}; + +AsyncGenerator.prototype["return"] = function (arg) { + return this._invoke("return", arg); +}; + +module.exports = AsyncGenerator; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/AwaitValue.js b/node_modules/@babel/runtime/helpers/AwaitValue.js new file mode 100644 index 0000000..d36df6e --- /dev/null +++ b/node_modules/@babel/runtime/helpers/AwaitValue.js @@ -0,0 +1,6 @@ +function _AwaitValue(value) { + this.wrapped = value; +} + +module.exports = _AwaitValue; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/applyDecoratedDescriptor.js b/node_modules/@babel/runtime/helpers/applyDecoratedDescriptor.js new file mode 100644 index 0000000..feaeab8 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/applyDecoratedDescriptor.js @@ -0,0 +1,31 @@ +function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { + var desc = {}; + Object.keys(descriptor).forEach(function (key) { + desc[key] = descriptor[key]; + }); + desc.enumerable = !!desc.enumerable; + desc.configurable = !!desc.configurable; + + if ('value' in desc || desc.initializer) { + desc.writable = true; + } + + desc = decorators.slice().reverse().reduce(function (desc, decorator) { + return decorator(target, property, desc) || desc; + }, desc); + + if (context && desc.initializer !== void 0) { + desc.value = desc.initializer ? desc.initializer.call(context) : void 0; + desc.initializer = undefined; + } + + if (desc.initializer === void 0) { + Object.defineProperty(target, property, desc); + desc = null; + } + + return desc; +} + +module.exports = _applyDecoratedDescriptor; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/arrayLikeToArray.js b/node_modules/@babel/runtime/helpers/arrayLikeToArray.js new file mode 100644 index 0000000..a459c8e --- /dev/null +++ b/node_modules/@babel/runtime/helpers/arrayLikeToArray.js @@ -0,0 +1,12 @@ +function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + + for (var i = 0, arr2 = new Array(len); i < len; i++) { + arr2[i] = arr[i]; + } + + return arr2; +} + +module.exports = _arrayLikeToArray; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/arrayWithHoles.js b/node_modules/@babel/runtime/helpers/arrayWithHoles.js new file mode 100644 index 0000000..9a36e2a --- /dev/null +++ b/node_modules/@babel/runtime/helpers/arrayWithHoles.js @@ -0,0 +1,6 @@ +function _arrayWithHoles(arr) { + if (Array.isArray(arr)) return arr; +} + +module.exports = _arrayWithHoles; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js b/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js new file mode 100644 index 0000000..aac913f --- /dev/null +++ b/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js @@ -0,0 +1,8 @@ +var arrayLikeToArray = require("./arrayLikeToArray.js"); + +function _arrayWithoutHoles(arr) { + if (Array.isArray(arr)) return arrayLikeToArray(arr); +} + +module.exports = _arrayWithoutHoles; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/assertThisInitialized.js b/node_modules/@babel/runtime/helpers/assertThisInitialized.js new file mode 100644 index 0000000..352e1e6 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/assertThisInitialized.js @@ -0,0 +1,10 @@ +function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + + return self; +} + +module.exports = _assertThisInitialized; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/asyncGeneratorDelegate.js b/node_modules/@babel/runtime/helpers/asyncGeneratorDelegate.js new file mode 100644 index 0000000..755185c --- /dev/null +++ b/node_modules/@babel/runtime/helpers/asyncGeneratorDelegate.js @@ -0,0 +1,59 @@ +function _asyncGeneratorDelegate(inner, awaitWrap) { + var iter = {}, + waiting = false; + + function pump(key, value) { + waiting = true; + value = new Promise(function (resolve) { + resolve(inner[key](value)); + }); + return { + done: false, + value: awaitWrap(value) + }; + } + + ; + + if (typeof Symbol === "function" && Symbol.iterator) { + iter[Symbol.iterator] = function () { + return this; + }; + } + + iter.next = function (value) { + if (waiting) { + waiting = false; + return value; + } + + return pump("next", value); + }; + + if (typeof inner["throw"] === "function") { + iter["throw"] = function (value) { + if (waiting) { + waiting = false; + throw value; + } + + return pump("throw", value); + }; + } + + if (typeof inner["return"] === "function") { + iter["return"] = function (value) { + if (waiting) { + waiting = false; + return value; + } + + return pump("return", value); + }; + } + + return iter; +} + +module.exports = _asyncGeneratorDelegate; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/asyncIterator.js b/node_modules/@babel/runtime/helpers/asyncIterator.js new file mode 100644 index 0000000..95107f4 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/asyncIterator.js @@ -0,0 +1,20 @@ +function _asyncIterator(iterable) { + var method; + + if (typeof Symbol !== "undefined") { + if (Symbol.asyncIterator) { + method = iterable[Symbol.asyncIterator]; + if (method != null) return method.call(iterable); + } + + if (Symbol.iterator) { + method = iterable[Symbol.iterator]; + if (method != null) return method.call(iterable); + } + } + + throw new TypeError("Object is not async iterable"); +} + +module.exports = _asyncIterator; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/asyncToGenerator.js b/node_modules/@babel/runtime/helpers/asyncToGenerator.js new file mode 100644 index 0000000..ec5daa8 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/asyncToGenerator.js @@ -0,0 +1,38 @@ +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { + try { + var info = gen[key](arg); + var value = info.value; + } catch (error) { + reject(error); + return; + } + + if (info.done) { + resolve(value); + } else { + Promise.resolve(value).then(_next, _throw); + } +} + +function _asyncToGenerator(fn) { + return function () { + var self = this, + args = arguments; + return new Promise(function (resolve, reject) { + var gen = fn.apply(self, args); + + function _next(value) { + asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); + } + + function _throw(err) { + asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + } + + _next(undefined); + }); + }; +} + +module.exports = _asyncToGenerator; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/awaitAsyncGenerator.js b/node_modules/@babel/runtime/helpers/awaitAsyncGenerator.js new file mode 100644 index 0000000..c338fee --- /dev/null +++ b/node_modules/@babel/runtime/helpers/awaitAsyncGenerator.js @@ -0,0 +1,8 @@ +var AwaitValue = require("./AwaitValue.js"); + +function _awaitAsyncGenerator(value) { + return new AwaitValue(value); +} + +module.exports = _awaitAsyncGenerator; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/classApplyDescriptorDestructureSet.js b/node_modules/@babel/runtime/helpers/classApplyDescriptorDestructureSet.js new file mode 100644 index 0000000..521c1e0 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/classApplyDescriptorDestructureSet.js @@ -0,0 +1,23 @@ +function _classApplyDescriptorDestructureSet(receiver, descriptor) { + if (descriptor.set) { + if (!("__destrObj" in descriptor)) { + descriptor.__destrObj = { + set value(v) { + descriptor.set.call(receiver, v); + } + + }; + } + + return descriptor.__destrObj; + } else { + if (!descriptor.writable) { + throw new TypeError("attempted to set read only private field"); + } + + return descriptor; + } +} + +module.exports = _classApplyDescriptorDestructureSet; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/classApplyDescriptorGet.js b/node_modules/@babel/runtime/helpers/classApplyDescriptorGet.js new file mode 100644 index 0000000..f750596 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/classApplyDescriptorGet.js @@ -0,0 +1,10 @@ +function _classApplyDescriptorGet(receiver, descriptor) { + if (descriptor.get) { + return descriptor.get.call(receiver); + } + + return descriptor.value; +} + +module.exports = _classApplyDescriptorGet; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/classApplyDescriptorSet.js b/node_modules/@babel/runtime/helpers/classApplyDescriptorSet.js new file mode 100644 index 0000000..997b264 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/classApplyDescriptorSet.js @@ -0,0 +1,14 @@ +function _classApplyDescriptorSet(receiver, descriptor, value) { + if (descriptor.set) { + descriptor.set.call(receiver, value); + } else { + if (!descriptor.writable) { + throw new TypeError("attempted to set read only private field"); + } + + descriptor.value = value; + } +} + +module.exports = _classApplyDescriptorSet; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/classCallCheck.js b/node_modules/@babel/runtime/helpers/classCallCheck.js new file mode 100644 index 0000000..026da41 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/classCallCheck.js @@ -0,0 +1,8 @@ +function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +} + +module.exports = _classCallCheck; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/classCheckPrivateStaticAccess.js b/node_modules/@babel/runtime/helpers/classCheckPrivateStaticAccess.js new file mode 100644 index 0000000..67373aa --- /dev/null +++ b/node_modules/@babel/runtime/helpers/classCheckPrivateStaticAccess.js @@ -0,0 +1,8 @@ +function _classCheckPrivateStaticAccess(receiver, classConstructor) { + if (receiver !== classConstructor) { + throw new TypeError("Private static access of wrong provenance"); + } +} + +module.exports = _classCheckPrivateStaticAccess; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/classCheckPrivateStaticFieldDescriptor.js b/node_modules/@babel/runtime/helpers/classCheckPrivateStaticFieldDescriptor.js new file mode 100644 index 0000000..3b93472 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/classCheckPrivateStaticFieldDescriptor.js @@ -0,0 +1,8 @@ +function _classCheckPrivateStaticFieldDescriptor(descriptor, action) { + if (descriptor === undefined) { + throw new TypeError("attempted to " + action + " private static field before its declaration"); + } +} + +module.exports = _classCheckPrivateStaticFieldDescriptor; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/classExtractFieldDescriptor.js b/node_modules/@babel/runtime/helpers/classExtractFieldDescriptor.js new file mode 100644 index 0000000..aaaac8c --- /dev/null +++ b/node_modules/@babel/runtime/helpers/classExtractFieldDescriptor.js @@ -0,0 +1,10 @@ +function _classExtractFieldDescriptor(receiver, privateMap, action) { + if (!privateMap.has(receiver)) { + throw new TypeError("attempted to " + action + " private field on non-instance"); + } + + return privateMap.get(receiver); +} + +module.exports = _classExtractFieldDescriptor; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/classNameTDZError.js b/node_modules/@babel/runtime/helpers/classNameTDZError.js new file mode 100644 index 0000000..bf740fa --- /dev/null +++ b/node_modules/@babel/runtime/helpers/classNameTDZError.js @@ -0,0 +1,6 @@ +function _classNameTDZError(name) { + throw new Error("Class \"" + name + "\" cannot be referenced in computed property keys."); +} + +module.exports = _classNameTDZError; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/classPrivateFieldDestructureSet.js b/node_modules/@babel/runtime/helpers/classPrivateFieldDestructureSet.js new file mode 100644 index 0000000..50b9fb0 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/classPrivateFieldDestructureSet.js @@ -0,0 +1,11 @@ +var classApplyDescriptorDestructureSet = require("./classApplyDescriptorDestructureSet.js"); + +var classExtractFieldDescriptor = require("./classExtractFieldDescriptor.js"); + +function _classPrivateFieldDestructureSet(receiver, privateMap) { + var descriptor = classExtractFieldDescriptor(receiver, privateMap, "set"); + return classApplyDescriptorDestructureSet(receiver, descriptor); +} + +module.exports = _classPrivateFieldDestructureSet; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/classPrivateFieldGet.js b/node_modules/@babel/runtime/helpers/classPrivateFieldGet.js new file mode 100644 index 0000000..df55969 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/classPrivateFieldGet.js @@ -0,0 +1,11 @@ +var classApplyDescriptorGet = require("./classApplyDescriptorGet.js"); + +var classExtractFieldDescriptor = require("./classExtractFieldDescriptor.js"); + +function _classPrivateFieldGet(receiver, privateMap) { + var descriptor = classExtractFieldDescriptor(receiver, privateMap, "get"); + return classApplyDescriptorGet(receiver, descriptor); +} + +module.exports = _classPrivateFieldGet; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/classPrivateFieldLooseBase.js b/node_modules/@babel/runtime/helpers/classPrivateFieldLooseBase.js new file mode 100644 index 0000000..3acdb7b --- /dev/null +++ b/node_modules/@babel/runtime/helpers/classPrivateFieldLooseBase.js @@ -0,0 +1,10 @@ +function _classPrivateFieldBase(receiver, privateKey) { + if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { + throw new TypeError("attempted to use private field on non-instance"); + } + + return receiver; +} + +module.exports = _classPrivateFieldBase; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/classPrivateFieldLooseKey.js b/node_modules/@babel/runtime/helpers/classPrivateFieldLooseKey.js new file mode 100644 index 0000000..3c0c552 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/classPrivateFieldLooseKey.js @@ -0,0 +1,8 @@ +var id = 0; + +function _classPrivateFieldKey(name) { + return "__private_" + id++ + "_" + name; +} + +module.exports = _classPrivateFieldKey; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/classPrivateFieldSet.js b/node_modules/@babel/runtime/helpers/classPrivateFieldSet.js new file mode 100644 index 0000000..d4a59b0 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/classPrivateFieldSet.js @@ -0,0 +1,12 @@ +var classApplyDescriptorSet = require("./classApplyDescriptorSet.js"); + +var classExtractFieldDescriptor = require("./classExtractFieldDescriptor.js"); + +function _classPrivateFieldSet(receiver, privateMap, value) { + var descriptor = classExtractFieldDescriptor(receiver, privateMap, "set"); + classApplyDescriptorSet(receiver, descriptor, value); + return value; +} + +module.exports = _classPrivateFieldSet; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/classPrivateMethodGet.js b/node_modules/@babel/runtime/helpers/classPrivateMethodGet.js new file mode 100644 index 0000000..d2f8ab1 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/classPrivateMethodGet.js @@ -0,0 +1,10 @@ +function _classPrivateMethodGet(receiver, privateSet, fn) { + if (!privateSet.has(receiver)) { + throw new TypeError("attempted to get private field on non-instance"); + } + + return fn; +} + +module.exports = _classPrivateMethodGet; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/classPrivateMethodSet.js b/node_modules/@babel/runtime/helpers/classPrivateMethodSet.js new file mode 100644 index 0000000..f500d16 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/classPrivateMethodSet.js @@ -0,0 +1,6 @@ +function _classPrivateMethodSet() { + throw new TypeError("attempted to reassign private method"); +} + +module.exports = _classPrivateMethodSet; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/classStaticPrivateFieldDestructureSet.js b/node_modules/@babel/runtime/helpers/classStaticPrivateFieldDestructureSet.js new file mode 100644 index 0000000..57e2c7f --- /dev/null +++ b/node_modules/@babel/runtime/helpers/classStaticPrivateFieldDestructureSet.js @@ -0,0 +1,14 @@ +var classApplyDescriptorDestructureSet = require("./classApplyDescriptorDestructureSet.js"); + +var classCheckPrivateStaticAccess = require("./classCheckPrivateStaticAccess.js"); + +var classCheckPrivateStaticFieldDescriptor = require("./classCheckPrivateStaticFieldDescriptor.js"); + +function _classStaticPrivateFieldDestructureSet(receiver, classConstructor, descriptor) { + classCheckPrivateStaticAccess(receiver, classConstructor); + classCheckPrivateStaticFieldDescriptor(descriptor, "set"); + return classApplyDescriptorDestructureSet(receiver, descriptor); +} + +module.exports = _classStaticPrivateFieldDestructureSet; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/classStaticPrivateFieldSpecGet.js b/node_modules/@babel/runtime/helpers/classStaticPrivateFieldSpecGet.js new file mode 100644 index 0000000..136c1f6 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/classStaticPrivateFieldSpecGet.js @@ -0,0 +1,14 @@ +var classApplyDescriptorGet = require("./classApplyDescriptorGet.js"); + +var classCheckPrivateStaticAccess = require("./classCheckPrivateStaticAccess.js"); + +var classCheckPrivateStaticFieldDescriptor = require("./classCheckPrivateStaticFieldDescriptor.js"); + +function _classStaticPrivateFieldSpecGet(receiver, classConstructor, descriptor) { + classCheckPrivateStaticAccess(receiver, classConstructor); + classCheckPrivateStaticFieldDescriptor(descriptor, "get"); + return classApplyDescriptorGet(receiver, descriptor); +} + +module.exports = _classStaticPrivateFieldSpecGet; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/classStaticPrivateFieldSpecSet.js b/node_modules/@babel/runtime/helpers/classStaticPrivateFieldSpecSet.js new file mode 100644 index 0000000..e6ecfa4 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/classStaticPrivateFieldSpecSet.js @@ -0,0 +1,15 @@ +var classApplyDescriptorSet = require("./classApplyDescriptorSet.js"); + +var classCheckPrivateStaticAccess = require("./classCheckPrivateStaticAccess.js"); + +var classCheckPrivateStaticFieldDescriptor = require("./classCheckPrivateStaticFieldDescriptor.js"); + +function _classStaticPrivateFieldSpecSet(receiver, classConstructor, descriptor, value) { + classCheckPrivateStaticAccess(receiver, classConstructor); + classCheckPrivateStaticFieldDescriptor(descriptor, "set"); + classApplyDescriptorSet(receiver, descriptor, value); + return value; +} + +module.exports = _classStaticPrivateFieldSpecSet; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/classStaticPrivateMethodGet.js b/node_modules/@babel/runtime/helpers/classStaticPrivateMethodGet.js new file mode 100644 index 0000000..5bc41fc --- /dev/null +++ b/node_modules/@babel/runtime/helpers/classStaticPrivateMethodGet.js @@ -0,0 +1,9 @@ +var classCheckPrivateStaticAccess = require("./classCheckPrivateStaticAccess.js"); + +function _classStaticPrivateMethodGet(receiver, classConstructor, method) { + classCheckPrivateStaticAccess(receiver, classConstructor); + return method; +} + +module.exports = _classStaticPrivateMethodGet; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/classStaticPrivateMethodSet.js b/node_modules/@babel/runtime/helpers/classStaticPrivateMethodSet.js new file mode 100644 index 0000000..06cfcc1 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/classStaticPrivateMethodSet.js @@ -0,0 +1,6 @@ +function _classStaticPrivateMethodSet() { + throw new TypeError("attempted to set read only static private field"); +} + +module.exports = _classStaticPrivateMethodSet; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/construct.js b/node_modules/@babel/runtime/helpers/construct.js new file mode 100644 index 0000000..108b39a --- /dev/null +++ b/node_modules/@babel/runtime/helpers/construct.js @@ -0,0 +1,26 @@ +var setPrototypeOf = require("./setPrototypeOf.js"); + +var isNativeReflectConstruct = require("./isNativeReflectConstruct.js"); + +function _construct(Parent, args, Class) { + if (isNativeReflectConstruct()) { + module.exports = _construct = Reflect.construct; + module.exports["default"] = module.exports, module.exports.__esModule = true; + } else { + module.exports = _construct = function _construct(Parent, args, Class) { + var a = [null]; + a.push.apply(a, args); + var Constructor = Function.bind.apply(Parent, a); + var instance = new Constructor(); + if (Class) setPrototypeOf(instance, Class.prototype); + return instance; + }; + + module.exports["default"] = module.exports, module.exports.__esModule = true; + } + + return _construct.apply(null, arguments); +} + +module.exports = _construct; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/createClass.js b/node_modules/@babel/runtime/helpers/createClass.js new file mode 100644 index 0000000..293bd61 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/createClass.js @@ -0,0 +1,18 @@ +function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } +} + +function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + return Constructor; +} + +module.exports = _createClass; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js b/node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js new file mode 100644 index 0000000..962d94d --- /dev/null +++ b/node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js @@ -0,0 +1,61 @@ +var unsupportedIterableToArray = require("./unsupportedIterableToArray.js"); + +function _createForOfIteratorHelper(o, allowArrayLike) { + var it; + + if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { + if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { + if (it) o = it; + var i = 0; + + var F = function F() {}; + + return { + s: F, + n: function n() { + if (i >= o.length) return { + done: true + }; + return { + done: false, + value: o[i++] + }; + }, + e: function e(_e) { + throw _e; + }, + f: F + }; + } + + throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + + var normalCompletion = true, + didErr = false, + err; + return { + s: function s() { + it = o[Symbol.iterator](); + }, + n: function n() { + var step = it.next(); + normalCompletion = step.done; + return step; + }, + e: function e(_e2) { + didErr = true; + err = _e2; + }, + f: function f() { + try { + if (!normalCompletion && it["return"] != null) it["return"](); + } finally { + if (didErr) throw err; + } + } + }; +} + +module.exports = _createForOfIteratorHelper; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/createForOfIteratorHelperLoose.js b/node_modules/@babel/runtime/helpers/createForOfIteratorHelperLoose.js new file mode 100644 index 0000000..06bb61b --- /dev/null +++ b/node_modules/@babel/runtime/helpers/createForOfIteratorHelperLoose.js @@ -0,0 +1,29 @@ +var unsupportedIterableToArray = require("./unsupportedIterableToArray.js"); + +function _createForOfIteratorHelperLoose(o, allowArrayLike) { + var it; + + if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { + if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { + if (it) o = it; + var i = 0; + return function () { + if (i >= o.length) return { + done: true + }; + return { + done: false, + value: o[i++] + }; + }; + } + + throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + + it = o[Symbol.iterator](); + return it.next.bind(it); +} + +module.exports = _createForOfIteratorHelperLoose; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/createSuper.js b/node_modules/@babel/runtime/helpers/createSuper.js new file mode 100644 index 0000000..0acdd51 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/createSuper.js @@ -0,0 +1,25 @@ +var getPrototypeOf = require("./getPrototypeOf.js"); + +var isNativeReflectConstruct = require("./isNativeReflectConstruct.js"); + +var possibleConstructorReturn = require("./possibleConstructorReturn.js"); + +function _createSuper(Derived) { + var hasNativeReflectConstruct = isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = getPrototypeOf(Derived), + result; + + if (hasNativeReflectConstruct) { + var NewTarget = getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + + return possibleConstructorReturn(this, result); + }; +} + +module.exports = _createSuper; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/decorate.js b/node_modules/@babel/runtime/helpers/decorate.js new file mode 100644 index 0000000..80d1751 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/decorate.js @@ -0,0 +1,401 @@ +var toArray = require("./toArray.js"); + +var toPropertyKey = require("./toPropertyKey.js"); + +function _decorate(decorators, factory, superClass, mixins) { + var api = _getDecoratorsApi(); + + if (mixins) { + for (var i = 0; i < mixins.length; i++) { + api = mixins[i](api); + } + } + + var r = factory(function initialize(O) { + api.initializeInstanceElements(O, decorated.elements); + }, superClass); + var decorated = api.decorateClass(_coalesceClassElements(r.d.map(_createElementDescriptor)), decorators); + api.initializeClassElements(r.F, decorated.elements); + return api.runClassFinishers(r.F, decorated.finishers); +} + +function _getDecoratorsApi() { + _getDecoratorsApi = function _getDecoratorsApi() { + return api; + }; + + var api = { + elementsDefinitionOrder: [["method"], ["field"]], + initializeInstanceElements: function initializeInstanceElements(O, elements) { + ["method", "field"].forEach(function (kind) { + elements.forEach(function (element) { + if (element.kind === kind && element.placement === "own") { + this.defineClassElement(O, element); + } + }, this); + }, this); + }, + initializeClassElements: function initializeClassElements(F, elements) { + var proto = F.prototype; + ["method", "field"].forEach(function (kind) { + elements.forEach(function (element) { + var placement = element.placement; + + if (element.kind === kind && (placement === "static" || placement === "prototype")) { + var receiver = placement === "static" ? F : proto; + this.defineClassElement(receiver, element); + } + }, this); + }, this); + }, + defineClassElement: function defineClassElement(receiver, element) { + var descriptor = element.descriptor; + + if (element.kind === "field") { + var initializer = element.initializer; + descriptor = { + enumerable: descriptor.enumerable, + writable: descriptor.writable, + configurable: descriptor.configurable, + value: initializer === void 0 ? void 0 : initializer.call(receiver) + }; + } + + Object.defineProperty(receiver, element.key, descriptor); + }, + decorateClass: function decorateClass(elements, decorators) { + var newElements = []; + var finishers = []; + var placements = { + "static": [], + prototype: [], + own: [] + }; + elements.forEach(function (element) { + this.addElementPlacement(element, placements); + }, this); + elements.forEach(function (element) { + if (!_hasDecorators(element)) return newElements.push(element); + var elementFinishersExtras = this.decorateElement(element, placements); + newElements.push(elementFinishersExtras.element); + newElements.push.apply(newElements, elementFinishersExtras.extras); + finishers.push.apply(finishers, elementFinishersExtras.finishers); + }, this); + + if (!decorators) { + return { + elements: newElements, + finishers: finishers + }; + } + + var result = this.decorateConstructor(newElements, decorators); + finishers.push.apply(finishers, result.finishers); + result.finishers = finishers; + return result; + }, + addElementPlacement: function addElementPlacement(element, placements, silent) { + var keys = placements[element.placement]; + + if (!silent && keys.indexOf(element.key) !== -1) { + throw new TypeError("Duplicated element (" + element.key + ")"); + } + + keys.push(element.key); + }, + decorateElement: function decorateElement(element, placements) { + var extras = []; + var finishers = []; + + for (var decorators = element.decorators, i = decorators.length - 1; i >= 0; i--) { + var keys = placements[element.placement]; + keys.splice(keys.indexOf(element.key), 1); + var elementObject = this.fromElementDescriptor(element); + var elementFinisherExtras = this.toElementFinisherExtras((0, decorators[i])(elementObject) || elementObject); + element = elementFinisherExtras.element; + this.addElementPlacement(element, placements); + + if (elementFinisherExtras.finisher) { + finishers.push(elementFinisherExtras.finisher); + } + + var newExtras = elementFinisherExtras.extras; + + if (newExtras) { + for (var j = 0; j < newExtras.length; j++) { + this.addElementPlacement(newExtras[j], placements); + } + + extras.push.apply(extras, newExtras); + } + } + + return { + element: element, + finishers: finishers, + extras: extras + }; + }, + decorateConstructor: function decorateConstructor(elements, decorators) { + var finishers = []; + + for (var i = decorators.length - 1; i >= 0; i--) { + var obj = this.fromClassDescriptor(elements); + var elementsAndFinisher = this.toClassDescriptor((0, decorators[i])(obj) || obj); + + if (elementsAndFinisher.finisher !== undefined) { + finishers.push(elementsAndFinisher.finisher); + } + + if (elementsAndFinisher.elements !== undefined) { + elements = elementsAndFinisher.elements; + + for (var j = 0; j < elements.length - 1; j++) { + for (var k = j + 1; k < elements.length; k++) { + if (elements[j].key === elements[k].key && elements[j].placement === elements[k].placement) { + throw new TypeError("Duplicated element (" + elements[j].key + ")"); + } + } + } + } + } + + return { + elements: elements, + finishers: finishers + }; + }, + fromElementDescriptor: function fromElementDescriptor(element) { + var obj = { + kind: element.kind, + key: element.key, + placement: element.placement, + descriptor: element.descriptor + }; + var desc = { + value: "Descriptor", + configurable: true + }; + Object.defineProperty(obj, Symbol.toStringTag, desc); + if (element.kind === "field") obj.initializer = element.initializer; + return obj; + }, + toElementDescriptors: function toElementDescriptors(elementObjects) { + if (elementObjects === undefined) return; + return toArray(elementObjects).map(function (elementObject) { + var element = this.toElementDescriptor(elementObject); + this.disallowProperty(elementObject, "finisher", "An element descriptor"); + this.disallowProperty(elementObject, "extras", "An element descriptor"); + return element; + }, this); + }, + toElementDescriptor: function toElementDescriptor(elementObject) { + var kind = String(elementObject.kind); + + if (kind !== "method" && kind !== "field") { + throw new TypeError('An element descriptor\'s .kind property must be either "method" or' + ' "field", but a decorator created an element descriptor with' + ' .kind "' + kind + '"'); + } + + var key = toPropertyKey(elementObject.key); + var placement = String(elementObject.placement); + + if (placement !== "static" && placement !== "prototype" && placement !== "own") { + throw new TypeError('An element descriptor\'s .placement property must be one of "static",' + ' "prototype" or "own", but a decorator created an element descriptor' + ' with .placement "' + placement + '"'); + } + + var descriptor = elementObject.descriptor; + this.disallowProperty(elementObject, "elements", "An element descriptor"); + var element = { + kind: kind, + key: key, + placement: placement, + descriptor: Object.assign({}, descriptor) + }; + + if (kind !== "field") { + this.disallowProperty(elementObject, "initializer", "A method descriptor"); + } else { + this.disallowProperty(descriptor, "get", "The property descriptor of a field descriptor"); + this.disallowProperty(descriptor, "set", "The property descriptor of a field descriptor"); + this.disallowProperty(descriptor, "value", "The property descriptor of a field descriptor"); + element.initializer = elementObject.initializer; + } + + return element; + }, + toElementFinisherExtras: function toElementFinisherExtras(elementObject) { + var element = this.toElementDescriptor(elementObject); + + var finisher = _optionalCallableProperty(elementObject, "finisher"); + + var extras = this.toElementDescriptors(elementObject.extras); + return { + element: element, + finisher: finisher, + extras: extras + }; + }, + fromClassDescriptor: function fromClassDescriptor(elements) { + var obj = { + kind: "class", + elements: elements.map(this.fromElementDescriptor, this) + }; + var desc = { + value: "Descriptor", + configurable: true + }; + Object.defineProperty(obj, Symbol.toStringTag, desc); + return obj; + }, + toClassDescriptor: function toClassDescriptor(obj) { + var kind = String(obj.kind); + + if (kind !== "class") { + throw new TypeError('A class descriptor\'s .kind property must be "class", but a decorator' + ' created a class descriptor with .kind "' + kind + '"'); + } + + this.disallowProperty(obj, "key", "A class descriptor"); + this.disallowProperty(obj, "placement", "A class descriptor"); + this.disallowProperty(obj, "descriptor", "A class descriptor"); + this.disallowProperty(obj, "initializer", "A class descriptor"); + this.disallowProperty(obj, "extras", "A class descriptor"); + + var finisher = _optionalCallableProperty(obj, "finisher"); + + var elements = this.toElementDescriptors(obj.elements); + return { + elements: elements, + finisher: finisher + }; + }, + runClassFinishers: function runClassFinishers(constructor, finishers) { + for (var i = 0; i < finishers.length; i++) { + var newConstructor = (0, finishers[i])(constructor); + + if (newConstructor !== undefined) { + if (typeof newConstructor !== "function") { + throw new TypeError("Finishers must return a constructor."); + } + + constructor = newConstructor; + } + } + + return constructor; + }, + disallowProperty: function disallowProperty(obj, name, objectType) { + if (obj[name] !== undefined) { + throw new TypeError(objectType + " can't have a ." + name + " property."); + } + } + }; + return api; +} + +function _createElementDescriptor(def) { + var key = toPropertyKey(def.key); + var descriptor; + + if (def.kind === "method") { + descriptor = { + value: def.value, + writable: true, + configurable: true, + enumerable: false + }; + } else if (def.kind === "get") { + descriptor = { + get: def.value, + configurable: true, + enumerable: false + }; + } else if (def.kind === "set") { + descriptor = { + set: def.value, + configurable: true, + enumerable: false + }; + } else if (def.kind === "field") { + descriptor = { + configurable: true, + writable: true, + enumerable: true + }; + } + + var element = { + kind: def.kind === "field" ? "field" : "method", + key: key, + placement: def["static"] ? "static" : def.kind === "field" ? "own" : "prototype", + descriptor: descriptor + }; + if (def.decorators) element.decorators = def.decorators; + if (def.kind === "field") element.initializer = def.value; + return element; +} + +function _coalesceGetterSetter(element, other) { + if (element.descriptor.get !== undefined) { + other.descriptor.get = element.descriptor.get; + } else { + other.descriptor.set = element.descriptor.set; + } +} + +function _coalesceClassElements(elements) { + var newElements = []; + + var isSameElement = function isSameElement(other) { + return other.kind === "method" && other.key === element.key && other.placement === element.placement; + }; + + for (var i = 0; i < elements.length; i++) { + var element = elements[i]; + var other; + + if (element.kind === "method" && (other = newElements.find(isSameElement))) { + if (_isDataDescriptor(element.descriptor) || _isDataDescriptor(other.descriptor)) { + if (_hasDecorators(element) || _hasDecorators(other)) { + throw new ReferenceError("Duplicated methods (" + element.key + ") can't be decorated."); + } + + other.descriptor = element.descriptor; + } else { + if (_hasDecorators(element)) { + if (_hasDecorators(other)) { + throw new ReferenceError("Decorators can't be placed on different accessors with for " + "the same property (" + element.key + ")."); + } + + other.decorators = element.decorators; + } + + _coalesceGetterSetter(element, other); + } + } else { + newElements.push(element); + } + } + + return newElements; +} + +function _hasDecorators(element) { + return element.decorators && element.decorators.length; +} + +function _isDataDescriptor(desc) { + return desc !== undefined && !(desc.value === undefined && desc.writable === undefined); +} + +function _optionalCallableProperty(obj, name) { + var value = obj[name]; + + if (value !== undefined && typeof value !== "function") { + throw new TypeError("Expected '" + name + "' to be a function"); + } + + return value; +} + +module.exports = _decorate; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/defaults.js b/node_modules/@babel/runtime/helpers/defaults.js new file mode 100644 index 0000000..576c5a4 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/defaults.js @@ -0,0 +1,17 @@ +function _defaults(obj, defaults) { + var keys = Object.getOwnPropertyNames(defaults); + + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + var value = Object.getOwnPropertyDescriptor(defaults, key); + + if (value && value.configurable && obj[key] === undefined) { + Object.defineProperty(obj, key, value); + } + } + + return obj; +} + +module.exports = _defaults; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/defineEnumerableProperties.js b/node_modules/@babel/runtime/helpers/defineEnumerableProperties.js new file mode 100644 index 0000000..4fe90c3 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/defineEnumerableProperties.js @@ -0,0 +1,25 @@ +function _defineEnumerableProperties(obj, descs) { + for (var key in descs) { + var desc = descs[key]; + desc.configurable = desc.enumerable = true; + if ("value" in desc) desc.writable = true; + Object.defineProperty(obj, key, desc); + } + + if (Object.getOwnPropertySymbols) { + var objectSymbols = Object.getOwnPropertySymbols(descs); + + for (var i = 0; i < objectSymbols.length; i++) { + var sym = objectSymbols[i]; + var desc = descs[sym]; + desc.configurable = desc.enumerable = true; + if ("value" in desc) desc.writable = true; + Object.defineProperty(obj, sym, desc); + } + } + + return obj; +} + +module.exports = _defineEnumerableProperties; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/defineProperty.js b/node_modules/@babel/runtime/helpers/defineProperty.js new file mode 100644 index 0000000..1cd65ac --- /dev/null +++ b/node_modules/@babel/runtime/helpers/defineProperty.js @@ -0,0 +1,17 @@ +function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; +} + +module.exports = _defineProperty; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/AsyncGenerator.js b/node_modules/@babel/runtime/helpers/esm/AsyncGenerator.js new file mode 100644 index 0000000..48383ec --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/AsyncGenerator.js @@ -0,0 +1,97 @@ +import AwaitValue from "./AwaitValue.js"; +export default function AsyncGenerator(gen) { + var front, back; + + function send(key, arg) { + return new Promise(function (resolve, reject) { + var request = { + key: key, + arg: arg, + resolve: resolve, + reject: reject, + next: null + }; + + if (back) { + back = back.next = request; + } else { + front = back = request; + resume(key, arg); + } + }); + } + + function resume(key, arg) { + try { + var result = gen[key](arg); + var value = result.value; + var wrappedAwait = value instanceof AwaitValue; + Promise.resolve(wrappedAwait ? value.wrapped : value).then(function (arg) { + if (wrappedAwait) { + resume(key === "return" ? "return" : "next", arg); + return; + } + + settle(result.done ? "return" : "normal", arg); + }, function (err) { + resume("throw", err); + }); + } catch (err) { + settle("throw", err); + } + } + + function settle(type, value) { + switch (type) { + case "return": + front.resolve({ + value: value, + done: true + }); + break; + + case "throw": + front.reject(value); + break; + + default: + front.resolve({ + value: value, + done: false + }); + break; + } + + front = front.next; + + if (front) { + resume(front.key, front.arg); + } else { + back = null; + } + } + + this._invoke = send; + + if (typeof gen["return"] !== "function") { + this["return"] = undefined; + } +} + +if (typeof Symbol === "function" && Symbol.asyncIterator) { + AsyncGenerator.prototype[Symbol.asyncIterator] = function () { + return this; + }; +} + +AsyncGenerator.prototype.next = function (arg) { + return this._invoke("next", arg); +}; + +AsyncGenerator.prototype["throw"] = function (arg) { + return this._invoke("throw", arg); +}; + +AsyncGenerator.prototype["return"] = function (arg) { + return this._invoke("return", arg); +}; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/AwaitValue.js b/node_modules/@babel/runtime/helpers/esm/AwaitValue.js new file mode 100644 index 0000000..5237e18 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/AwaitValue.js @@ -0,0 +1,3 @@ +export default function _AwaitValue(value) { + this.wrapped = value; +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/applyDecoratedDescriptor.js b/node_modules/@babel/runtime/helpers/esm/applyDecoratedDescriptor.js new file mode 100644 index 0000000..84b5961 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/applyDecoratedDescriptor.js @@ -0,0 +1,28 @@ +export default function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { + var desc = {}; + Object.keys(descriptor).forEach(function (key) { + desc[key] = descriptor[key]; + }); + desc.enumerable = !!desc.enumerable; + desc.configurable = !!desc.configurable; + + if ('value' in desc || desc.initializer) { + desc.writable = true; + } + + desc = decorators.slice().reverse().reduce(function (desc, decorator) { + return decorator(target, property, desc) || desc; + }, desc); + + if (context && desc.initializer !== void 0) { + desc.value = desc.initializer ? desc.initializer.call(context) : void 0; + desc.initializer = undefined; + } + + if (desc.initializer === void 0) { + Object.defineProperty(target, property, desc); + desc = null; + } + + return desc; +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js b/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js new file mode 100644 index 0000000..edbeb8e --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js @@ -0,0 +1,9 @@ +export default function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + + for (var i = 0, arr2 = new Array(len); i < len; i++) { + arr2[i] = arr[i]; + } + + return arr2; +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js b/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js new file mode 100644 index 0000000..be734fc --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js @@ -0,0 +1,3 @@ +export default function _arrayWithHoles(arr) { + if (Array.isArray(arr)) return arr; +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js b/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js new file mode 100644 index 0000000..f7d8dc7 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js @@ -0,0 +1,4 @@ +import arrayLikeToArray from "./arrayLikeToArray.js"; +export default function _arrayWithoutHoles(arr) { + if (Array.isArray(arr)) return arrayLikeToArray(arr); +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js b/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js new file mode 100644 index 0000000..bbf849c --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js @@ -0,0 +1,7 @@ +export default function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + + return self; +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/asyncGeneratorDelegate.js b/node_modules/@babel/runtime/helpers/esm/asyncGeneratorDelegate.js new file mode 100644 index 0000000..eb56fe5 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/asyncGeneratorDelegate.js @@ -0,0 +1,56 @@ +export default function _asyncGeneratorDelegate(inner, awaitWrap) { + var iter = {}, + waiting = false; + + function pump(key, value) { + waiting = true; + value = new Promise(function (resolve) { + resolve(inner[key](value)); + }); + return { + done: false, + value: awaitWrap(value) + }; + } + + ; + + if (typeof Symbol === "function" && Symbol.iterator) { + iter[Symbol.iterator] = function () { + return this; + }; + } + + iter.next = function (value) { + if (waiting) { + waiting = false; + return value; + } + + return pump("next", value); + }; + + if (typeof inner["throw"] === "function") { + iter["throw"] = function (value) { + if (waiting) { + waiting = false; + throw value; + } + + return pump("throw", value); + }; + } + + if (typeof inner["return"] === "function") { + iter["return"] = function (value) { + if (waiting) { + waiting = false; + return value; + } + + return pump("return", value); + }; + } + + return iter; +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/asyncIterator.js b/node_modules/@babel/runtime/helpers/esm/asyncIterator.js new file mode 100644 index 0000000..e03fa97 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/asyncIterator.js @@ -0,0 +1,17 @@ +export default function _asyncIterator(iterable) { + var method; + + if (typeof Symbol !== "undefined") { + if (Symbol.asyncIterator) { + method = iterable[Symbol.asyncIterator]; + if (method != null) return method.call(iterable); + } + + if (Symbol.iterator) { + method = iterable[Symbol.iterator]; + if (method != null) return method.call(iterable); + } + } + + throw new TypeError("Object is not async iterable"); +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js b/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js new file mode 100644 index 0000000..2a25f54 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js @@ -0,0 +1,35 @@ +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { + try { + var info = gen[key](arg); + var value = info.value; + } catch (error) { + reject(error); + return; + } + + if (info.done) { + resolve(value); + } else { + Promise.resolve(value).then(_next, _throw); + } +} + +export default function _asyncToGenerator(fn) { + return function () { + var self = this, + args = arguments; + return new Promise(function (resolve, reject) { + var gen = fn.apply(self, args); + + function _next(value) { + asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); + } + + function _throw(err) { + asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + } + + _next(undefined); + }); + }; +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/awaitAsyncGenerator.js b/node_modules/@babel/runtime/helpers/esm/awaitAsyncGenerator.js new file mode 100644 index 0000000..ccca65e --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/awaitAsyncGenerator.js @@ -0,0 +1,4 @@ +import AwaitValue from "./AwaitValue.js"; +export default function _awaitAsyncGenerator(value) { + return new AwaitValue(value); +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorDestructureSet.js b/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorDestructureSet.js new file mode 100644 index 0000000..4472adc --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorDestructureSet.js @@ -0,0 +1,20 @@ +export default function _classApplyDescriptorDestructureSet(receiver, descriptor) { + if (descriptor.set) { + if (!("__destrObj" in descriptor)) { + descriptor.__destrObj = { + set value(v) { + descriptor.set.call(receiver, v); + } + + }; + } + + return descriptor.__destrObj; + } else { + if (!descriptor.writable) { + throw new TypeError("attempted to set read only private field"); + } + + return descriptor; + } +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorGet.js b/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorGet.js new file mode 100644 index 0000000..0fad169 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorGet.js @@ -0,0 +1,7 @@ +export default function _classApplyDescriptorGet(receiver, descriptor) { + if (descriptor.get) { + return descriptor.get.call(receiver); + } + + return descriptor.value; +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorSet.js b/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorSet.js new file mode 100644 index 0000000..f295f3e --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorSet.js @@ -0,0 +1,11 @@ +export default function _classApplyDescriptorSet(receiver, descriptor, value) { + if (descriptor.set) { + descriptor.set.call(receiver, value); + } else { + if (!descriptor.writable) { + throw new TypeError("attempted to set read only private field"); + } + + descriptor.value = value; + } +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/classCallCheck.js b/node_modules/@babel/runtime/helpers/esm/classCallCheck.js new file mode 100644 index 0000000..2f1738a --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/classCallCheck.js @@ -0,0 +1,5 @@ +export default function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/classCheckPrivateStaticAccess.js b/node_modules/@babel/runtime/helpers/esm/classCheckPrivateStaticAccess.js new file mode 100644 index 0000000..098ed30 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/classCheckPrivateStaticAccess.js @@ -0,0 +1,5 @@ +export default function _classCheckPrivateStaticAccess(receiver, classConstructor) { + if (receiver !== classConstructor) { + throw new TypeError("Private static access of wrong provenance"); + } +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/classCheckPrivateStaticFieldDescriptor.js b/node_modules/@babel/runtime/helpers/esm/classCheckPrivateStaticFieldDescriptor.js new file mode 100644 index 0000000..0ef34b8 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/classCheckPrivateStaticFieldDescriptor.js @@ -0,0 +1,5 @@ +export default function _classCheckPrivateStaticFieldDescriptor(descriptor, action) { + if (descriptor === undefined) { + throw new TypeError("attempted to " + action + " private static field before its declaration"); + } +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/classExtractFieldDescriptor.js b/node_modules/@babel/runtime/helpers/esm/classExtractFieldDescriptor.js new file mode 100644 index 0000000..8dabe9a --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/classExtractFieldDescriptor.js @@ -0,0 +1,7 @@ +export default function _classExtractFieldDescriptor(receiver, privateMap, action) { + if (!privateMap.has(receiver)) { + throw new TypeError("attempted to " + action + " private field on non-instance"); + } + + return privateMap.get(receiver); +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/classNameTDZError.js b/node_modules/@babel/runtime/helpers/esm/classNameTDZError.js new file mode 100644 index 0000000..f7b6dd5 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/classNameTDZError.js @@ -0,0 +1,3 @@ +export default function _classNameTDZError(name) { + throw new Error("Class \"" + name + "\" cannot be referenced in computed property keys."); +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/classPrivateFieldDestructureSet.js b/node_modules/@babel/runtime/helpers/esm/classPrivateFieldDestructureSet.js new file mode 100644 index 0000000..fb58833 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/classPrivateFieldDestructureSet.js @@ -0,0 +1,6 @@ +import classApplyDescriptorDestructureSet from "./classApplyDescriptorDestructureSet.js"; +import classExtractFieldDescriptor from "./classExtractFieldDescriptor.js"; +export default function _classPrivateFieldDestructureSet(receiver, privateMap) { + var descriptor = classExtractFieldDescriptor(receiver, privateMap, "set"); + return classApplyDescriptorDestructureSet(receiver, descriptor); +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet.js b/node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet.js new file mode 100644 index 0000000..53cd137 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet.js @@ -0,0 +1,6 @@ +import classApplyDescriptorGet from "./classApplyDescriptorGet.js"; +import classExtractFieldDescriptor from "./classExtractFieldDescriptor.js"; +export default function _classPrivateFieldGet(receiver, privateMap) { + var descriptor = classExtractFieldDescriptor(receiver, privateMap, "get"); + return classApplyDescriptorGet(receiver, descriptor); +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseBase.js b/node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseBase.js new file mode 100644 index 0000000..5b10916 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseBase.js @@ -0,0 +1,7 @@ +export default function _classPrivateFieldBase(receiver, privateKey) { + if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { + throw new TypeError("attempted to use private field on non-instance"); + } + + return receiver; +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseKey.js b/node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseKey.js new file mode 100644 index 0000000..5b7e5ac --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseKey.js @@ -0,0 +1,4 @@ +var id = 0; +export default function _classPrivateFieldKey(name) { + return "__private_" + id++ + "_" + name; +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet.js b/node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet.js new file mode 100644 index 0000000..ad91be4 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet.js @@ -0,0 +1,7 @@ +import classApplyDescriptorSet from "./classApplyDescriptorSet.js"; +import classExtractFieldDescriptor from "./classExtractFieldDescriptor.js"; +export default function _classPrivateFieldSet(receiver, privateMap, value) { + var descriptor = classExtractFieldDescriptor(receiver, privateMap, "set"); + classApplyDescriptorSet(receiver, descriptor, value); + return value; +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/classPrivateMethodGet.js b/node_modules/@babel/runtime/helpers/esm/classPrivateMethodGet.js new file mode 100644 index 0000000..38b9d58 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/classPrivateMethodGet.js @@ -0,0 +1,7 @@ +export default function _classPrivateMethodGet(receiver, privateSet, fn) { + if (!privateSet.has(receiver)) { + throw new TypeError("attempted to get private field on non-instance"); + } + + return fn; +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/classPrivateMethodSet.js b/node_modules/@babel/runtime/helpers/esm/classPrivateMethodSet.js new file mode 100644 index 0000000..2bbaf3a --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/classPrivateMethodSet.js @@ -0,0 +1,3 @@ +export default function _classPrivateMethodSet() { + throw new TypeError("attempted to reassign private method"); +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldDestructureSet.js b/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldDestructureSet.js new file mode 100644 index 0000000..77afcfb --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldDestructureSet.js @@ -0,0 +1,8 @@ +import classApplyDescriptorDestructureSet from "./classApplyDescriptorDestructureSet.js"; +import classCheckPrivateStaticAccess from "./classCheckPrivateStaticAccess.js"; +import classCheckPrivateStaticFieldDescriptor from "./classCheckPrivateStaticFieldDescriptor.js"; +export default function _classStaticPrivateFieldDestructureSet(receiver, classConstructor, descriptor) { + classCheckPrivateStaticAccess(receiver, classConstructor); + classCheckPrivateStaticFieldDescriptor(descriptor, "set"); + return classApplyDescriptorDestructureSet(receiver, descriptor); +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldSpecGet.js b/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldSpecGet.js new file mode 100644 index 0000000..d253d31 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldSpecGet.js @@ -0,0 +1,8 @@ +import classApplyDescriptorGet from "./classApplyDescriptorGet.js"; +import classCheckPrivateStaticAccess from "./classCheckPrivateStaticAccess.js"; +import classCheckPrivateStaticFieldDescriptor from "./classCheckPrivateStaticFieldDescriptor.js"; +export default function _classStaticPrivateFieldSpecGet(receiver, classConstructor, descriptor) { + classCheckPrivateStaticAccess(receiver, classConstructor); + classCheckPrivateStaticFieldDescriptor(descriptor, "get"); + return classApplyDescriptorGet(receiver, descriptor); +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldSpecSet.js b/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldSpecSet.js new file mode 100644 index 0000000..b0b0cc6 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldSpecSet.js @@ -0,0 +1,9 @@ +import classApplyDescriptorSet from "./classApplyDescriptorSet.js"; +import classCheckPrivateStaticAccess from "./classCheckPrivateStaticAccess.js"; +import classCheckPrivateStaticFieldDescriptor from "./classCheckPrivateStaticFieldDescriptor.js"; +export default function _classStaticPrivateFieldSpecSet(receiver, classConstructor, descriptor, value) { + classCheckPrivateStaticAccess(receiver, classConstructor); + classCheckPrivateStaticFieldDescriptor(descriptor, "set"); + classApplyDescriptorSet(receiver, descriptor, value); + return value; +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/classStaticPrivateMethodGet.js b/node_modules/@babel/runtime/helpers/esm/classStaticPrivateMethodGet.js new file mode 100644 index 0000000..fddc7b2 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/classStaticPrivateMethodGet.js @@ -0,0 +1,5 @@ +import classCheckPrivateStaticAccess from "./classCheckPrivateStaticAccess.js"; +export default function _classStaticPrivateMethodGet(receiver, classConstructor, method) { + classCheckPrivateStaticAccess(receiver, classConstructor); + return method; +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/classStaticPrivateMethodSet.js b/node_modules/@babel/runtime/helpers/esm/classStaticPrivateMethodSet.js new file mode 100644 index 0000000..d5ab60a --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/classStaticPrivateMethodSet.js @@ -0,0 +1,3 @@ +export default function _classStaticPrivateMethodSet() { + throw new TypeError("attempted to set read only static private field"); +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/construct.js b/node_modules/@babel/runtime/helpers/esm/construct.js new file mode 100644 index 0000000..0c39835 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/construct.js @@ -0,0 +1,18 @@ +import setPrototypeOf from "./setPrototypeOf.js"; +import isNativeReflectConstruct from "./isNativeReflectConstruct.js"; +export default function _construct(Parent, args, Class) { + if (isNativeReflectConstruct()) { + _construct = Reflect.construct; + } else { + _construct = function _construct(Parent, args, Class) { + var a = [null]; + a.push.apply(a, args); + var Constructor = Function.bind.apply(Parent, a); + var instance = new Constructor(); + if (Class) setPrototypeOf(instance, Class.prototype); + return instance; + }; + } + + return _construct.apply(null, arguments); +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/createClass.js b/node_modules/@babel/runtime/helpers/esm/createClass.js new file mode 100644 index 0000000..d6cf412 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/createClass.js @@ -0,0 +1,15 @@ +function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } +} + +export default function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + return Constructor; +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js b/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js new file mode 100644 index 0000000..8ac1f59 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js @@ -0,0 +1,57 @@ +import unsupportedIterableToArray from "./unsupportedIterableToArray.js"; +export default function _createForOfIteratorHelper(o, allowArrayLike) { + var it; + + if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { + if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { + if (it) o = it; + var i = 0; + + var F = function F() {}; + + return { + s: F, + n: function n() { + if (i >= o.length) return { + done: true + }; + return { + done: false, + value: o[i++] + }; + }, + e: function e(_e) { + throw _e; + }, + f: F + }; + } + + throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + + var normalCompletion = true, + didErr = false, + err; + return { + s: function s() { + it = o[Symbol.iterator](); + }, + n: function n() { + var step = it.next(); + normalCompletion = step.done; + return step; + }, + e: function e(_e2) { + didErr = true; + err = _e2; + }, + f: function f() { + try { + if (!normalCompletion && it["return"] != null) it["return"](); + } finally { + if (didErr) throw err; + } + } + }; +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelperLoose.js b/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelperLoose.js new file mode 100644 index 0000000..abdc49a --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelperLoose.js @@ -0,0 +1,25 @@ +import unsupportedIterableToArray from "./unsupportedIterableToArray.js"; +export default function _createForOfIteratorHelperLoose(o, allowArrayLike) { + var it; + + if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { + if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { + if (it) o = it; + var i = 0; + return function () { + if (i >= o.length) return { + done: true + }; + return { + done: false, + value: o[i++] + }; + }; + } + + throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + + it = o[Symbol.iterator](); + return it.next.bind(it); +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/createSuper.js b/node_modules/@babel/runtime/helpers/esm/createSuper.js new file mode 100644 index 0000000..ea5ea99 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/createSuper.js @@ -0,0 +1,19 @@ +import getPrototypeOf from "./getPrototypeOf.js"; +import isNativeReflectConstruct from "./isNativeReflectConstruct.js"; +import possibleConstructorReturn from "./possibleConstructorReturn.js"; +export default function _createSuper(Derived) { + var hasNativeReflectConstruct = isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = getPrototypeOf(Derived), + result; + + if (hasNativeReflectConstruct) { + var NewTarget = getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + + return possibleConstructorReturn(this, result); + }; +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/decorate.js b/node_modules/@babel/runtime/helpers/esm/decorate.js new file mode 100644 index 0000000..daf56da --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/decorate.js @@ -0,0 +1,396 @@ +import toArray from "./toArray.js"; +import toPropertyKey from "./toPropertyKey.js"; +export default function _decorate(decorators, factory, superClass, mixins) { + var api = _getDecoratorsApi(); + + if (mixins) { + for (var i = 0; i < mixins.length; i++) { + api = mixins[i](api); + } + } + + var r = factory(function initialize(O) { + api.initializeInstanceElements(O, decorated.elements); + }, superClass); + var decorated = api.decorateClass(_coalesceClassElements(r.d.map(_createElementDescriptor)), decorators); + api.initializeClassElements(r.F, decorated.elements); + return api.runClassFinishers(r.F, decorated.finishers); +} + +function _getDecoratorsApi() { + _getDecoratorsApi = function _getDecoratorsApi() { + return api; + }; + + var api = { + elementsDefinitionOrder: [["method"], ["field"]], + initializeInstanceElements: function initializeInstanceElements(O, elements) { + ["method", "field"].forEach(function (kind) { + elements.forEach(function (element) { + if (element.kind === kind && element.placement === "own") { + this.defineClassElement(O, element); + } + }, this); + }, this); + }, + initializeClassElements: function initializeClassElements(F, elements) { + var proto = F.prototype; + ["method", "field"].forEach(function (kind) { + elements.forEach(function (element) { + var placement = element.placement; + + if (element.kind === kind && (placement === "static" || placement === "prototype")) { + var receiver = placement === "static" ? F : proto; + this.defineClassElement(receiver, element); + } + }, this); + }, this); + }, + defineClassElement: function defineClassElement(receiver, element) { + var descriptor = element.descriptor; + + if (element.kind === "field") { + var initializer = element.initializer; + descriptor = { + enumerable: descriptor.enumerable, + writable: descriptor.writable, + configurable: descriptor.configurable, + value: initializer === void 0 ? void 0 : initializer.call(receiver) + }; + } + + Object.defineProperty(receiver, element.key, descriptor); + }, + decorateClass: function decorateClass(elements, decorators) { + var newElements = []; + var finishers = []; + var placements = { + "static": [], + prototype: [], + own: [] + }; + elements.forEach(function (element) { + this.addElementPlacement(element, placements); + }, this); + elements.forEach(function (element) { + if (!_hasDecorators(element)) return newElements.push(element); + var elementFinishersExtras = this.decorateElement(element, placements); + newElements.push(elementFinishersExtras.element); + newElements.push.apply(newElements, elementFinishersExtras.extras); + finishers.push.apply(finishers, elementFinishersExtras.finishers); + }, this); + + if (!decorators) { + return { + elements: newElements, + finishers: finishers + }; + } + + var result = this.decorateConstructor(newElements, decorators); + finishers.push.apply(finishers, result.finishers); + result.finishers = finishers; + return result; + }, + addElementPlacement: function addElementPlacement(element, placements, silent) { + var keys = placements[element.placement]; + + if (!silent && keys.indexOf(element.key) !== -1) { + throw new TypeError("Duplicated element (" + element.key + ")"); + } + + keys.push(element.key); + }, + decorateElement: function decorateElement(element, placements) { + var extras = []; + var finishers = []; + + for (var decorators = element.decorators, i = decorators.length - 1; i >= 0; i--) { + var keys = placements[element.placement]; + keys.splice(keys.indexOf(element.key), 1); + var elementObject = this.fromElementDescriptor(element); + var elementFinisherExtras = this.toElementFinisherExtras((0, decorators[i])(elementObject) || elementObject); + element = elementFinisherExtras.element; + this.addElementPlacement(element, placements); + + if (elementFinisherExtras.finisher) { + finishers.push(elementFinisherExtras.finisher); + } + + var newExtras = elementFinisherExtras.extras; + + if (newExtras) { + for (var j = 0; j < newExtras.length; j++) { + this.addElementPlacement(newExtras[j], placements); + } + + extras.push.apply(extras, newExtras); + } + } + + return { + element: element, + finishers: finishers, + extras: extras + }; + }, + decorateConstructor: function decorateConstructor(elements, decorators) { + var finishers = []; + + for (var i = decorators.length - 1; i >= 0; i--) { + var obj = this.fromClassDescriptor(elements); + var elementsAndFinisher = this.toClassDescriptor((0, decorators[i])(obj) || obj); + + if (elementsAndFinisher.finisher !== undefined) { + finishers.push(elementsAndFinisher.finisher); + } + + if (elementsAndFinisher.elements !== undefined) { + elements = elementsAndFinisher.elements; + + for (var j = 0; j < elements.length - 1; j++) { + for (var k = j + 1; k < elements.length; k++) { + if (elements[j].key === elements[k].key && elements[j].placement === elements[k].placement) { + throw new TypeError("Duplicated element (" + elements[j].key + ")"); + } + } + } + } + } + + return { + elements: elements, + finishers: finishers + }; + }, + fromElementDescriptor: function fromElementDescriptor(element) { + var obj = { + kind: element.kind, + key: element.key, + placement: element.placement, + descriptor: element.descriptor + }; + var desc = { + value: "Descriptor", + configurable: true + }; + Object.defineProperty(obj, Symbol.toStringTag, desc); + if (element.kind === "field") obj.initializer = element.initializer; + return obj; + }, + toElementDescriptors: function toElementDescriptors(elementObjects) { + if (elementObjects === undefined) return; + return toArray(elementObjects).map(function (elementObject) { + var element = this.toElementDescriptor(elementObject); + this.disallowProperty(elementObject, "finisher", "An element descriptor"); + this.disallowProperty(elementObject, "extras", "An element descriptor"); + return element; + }, this); + }, + toElementDescriptor: function toElementDescriptor(elementObject) { + var kind = String(elementObject.kind); + + if (kind !== "method" && kind !== "field") { + throw new TypeError('An element descriptor\'s .kind property must be either "method" or' + ' "field", but a decorator created an element descriptor with' + ' .kind "' + kind + '"'); + } + + var key = toPropertyKey(elementObject.key); + var placement = String(elementObject.placement); + + if (placement !== "static" && placement !== "prototype" && placement !== "own") { + throw new TypeError('An element descriptor\'s .placement property must be one of "static",' + ' "prototype" or "own", but a decorator created an element descriptor' + ' with .placement "' + placement + '"'); + } + + var descriptor = elementObject.descriptor; + this.disallowProperty(elementObject, "elements", "An element descriptor"); + var element = { + kind: kind, + key: key, + placement: placement, + descriptor: Object.assign({}, descriptor) + }; + + if (kind !== "field") { + this.disallowProperty(elementObject, "initializer", "A method descriptor"); + } else { + this.disallowProperty(descriptor, "get", "The property descriptor of a field descriptor"); + this.disallowProperty(descriptor, "set", "The property descriptor of a field descriptor"); + this.disallowProperty(descriptor, "value", "The property descriptor of a field descriptor"); + element.initializer = elementObject.initializer; + } + + return element; + }, + toElementFinisherExtras: function toElementFinisherExtras(elementObject) { + var element = this.toElementDescriptor(elementObject); + + var finisher = _optionalCallableProperty(elementObject, "finisher"); + + var extras = this.toElementDescriptors(elementObject.extras); + return { + element: element, + finisher: finisher, + extras: extras + }; + }, + fromClassDescriptor: function fromClassDescriptor(elements) { + var obj = { + kind: "class", + elements: elements.map(this.fromElementDescriptor, this) + }; + var desc = { + value: "Descriptor", + configurable: true + }; + Object.defineProperty(obj, Symbol.toStringTag, desc); + return obj; + }, + toClassDescriptor: function toClassDescriptor(obj) { + var kind = String(obj.kind); + + if (kind !== "class") { + throw new TypeError('A class descriptor\'s .kind property must be "class", but a decorator' + ' created a class descriptor with .kind "' + kind + '"'); + } + + this.disallowProperty(obj, "key", "A class descriptor"); + this.disallowProperty(obj, "placement", "A class descriptor"); + this.disallowProperty(obj, "descriptor", "A class descriptor"); + this.disallowProperty(obj, "initializer", "A class descriptor"); + this.disallowProperty(obj, "extras", "A class descriptor"); + + var finisher = _optionalCallableProperty(obj, "finisher"); + + var elements = this.toElementDescriptors(obj.elements); + return { + elements: elements, + finisher: finisher + }; + }, + runClassFinishers: function runClassFinishers(constructor, finishers) { + for (var i = 0; i < finishers.length; i++) { + var newConstructor = (0, finishers[i])(constructor); + + if (newConstructor !== undefined) { + if (typeof newConstructor !== "function") { + throw new TypeError("Finishers must return a constructor."); + } + + constructor = newConstructor; + } + } + + return constructor; + }, + disallowProperty: function disallowProperty(obj, name, objectType) { + if (obj[name] !== undefined) { + throw new TypeError(objectType + " can't have a ." + name + " property."); + } + } + }; + return api; +} + +function _createElementDescriptor(def) { + var key = toPropertyKey(def.key); + var descriptor; + + if (def.kind === "method") { + descriptor = { + value: def.value, + writable: true, + configurable: true, + enumerable: false + }; + } else if (def.kind === "get") { + descriptor = { + get: def.value, + configurable: true, + enumerable: false + }; + } else if (def.kind === "set") { + descriptor = { + set: def.value, + configurable: true, + enumerable: false + }; + } else if (def.kind === "field") { + descriptor = { + configurable: true, + writable: true, + enumerable: true + }; + } + + var element = { + kind: def.kind === "field" ? "field" : "method", + key: key, + placement: def["static"] ? "static" : def.kind === "field" ? "own" : "prototype", + descriptor: descriptor + }; + if (def.decorators) element.decorators = def.decorators; + if (def.kind === "field") element.initializer = def.value; + return element; +} + +function _coalesceGetterSetter(element, other) { + if (element.descriptor.get !== undefined) { + other.descriptor.get = element.descriptor.get; + } else { + other.descriptor.set = element.descriptor.set; + } +} + +function _coalesceClassElements(elements) { + var newElements = []; + + var isSameElement = function isSameElement(other) { + return other.kind === "method" && other.key === element.key && other.placement === element.placement; + }; + + for (var i = 0; i < elements.length; i++) { + var element = elements[i]; + var other; + + if (element.kind === "method" && (other = newElements.find(isSameElement))) { + if (_isDataDescriptor(element.descriptor) || _isDataDescriptor(other.descriptor)) { + if (_hasDecorators(element) || _hasDecorators(other)) { + throw new ReferenceError("Duplicated methods (" + element.key + ") can't be decorated."); + } + + other.descriptor = element.descriptor; + } else { + if (_hasDecorators(element)) { + if (_hasDecorators(other)) { + throw new ReferenceError("Decorators can't be placed on different accessors with for " + "the same property (" + element.key + ")."); + } + + other.decorators = element.decorators; + } + + _coalesceGetterSetter(element, other); + } + } else { + newElements.push(element); + } + } + + return newElements; +} + +function _hasDecorators(element) { + return element.decorators && element.decorators.length; +} + +function _isDataDescriptor(desc) { + return desc !== undefined && !(desc.value === undefined && desc.writable === undefined); +} + +function _optionalCallableProperty(obj, name) { + var value = obj[name]; + + if (value !== undefined && typeof value !== "function") { + throw new TypeError("Expected '" + name + "' to be a function"); + } + + return value; +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/defaults.js b/node_modules/@babel/runtime/helpers/esm/defaults.js new file mode 100644 index 0000000..3de1d8e --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/defaults.js @@ -0,0 +1,14 @@ +export default function _defaults(obj, defaults) { + var keys = Object.getOwnPropertyNames(defaults); + + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + var value = Object.getOwnPropertyDescriptor(defaults, key); + + if (value && value.configurable && obj[key] === undefined) { + Object.defineProperty(obj, key, value); + } + } + + return obj; +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/defineEnumerableProperties.js b/node_modules/@babel/runtime/helpers/esm/defineEnumerableProperties.js new file mode 100644 index 0000000..7981acd --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/defineEnumerableProperties.js @@ -0,0 +1,22 @@ +export default function _defineEnumerableProperties(obj, descs) { + for (var key in descs) { + var desc = descs[key]; + desc.configurable = desc.enumerable = true; + if ("value" in desc) desc.writable = true; + Object.defineProperty(obj, key, desc); + } + + if (Object.getOwnPropertySymbols) { + var objectSymbols = Object.getOwnPropertySymbols(descs); + + for (var i = 0; i < objectSymbols.length; i++) { + var sym = objectSymbols[i]; + var desc = descs[sym]; + desc.configurable = desc.enumerable = true; + if ("value" in desc) desc.writable = true; + Object.defineProperty(obj, sym, desc); + } + } + + return obj; +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/defineProperty.js b/node_modules/@babel/runtime/helpers/esm/defineProperty.js new file mode 100644 index 0000000..7cf6e59 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/defineProperty.js @@ -0,0 +1,14 @@ +export default function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/extends.js b/node_modules/@babel/runtime/helpers/esm/extends.js new file mode 100644 index 0000000..b9b138d --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/extends.js @@ -0,0 +1,17 @@ +export default function _extends() { + _extends = Object.assign || function (target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + + return target; + }; + + return _extends.apply(this, arguments); +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/get.js b/node_modules/@babel/runtime/helpers/esm/get.js new file mode 100644 index 0000000..1bce020 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/get.js @@ -0,0 +1,20 @@ +import superPropBase from "./superPropBase.js"; +export default function _get(target, property, receiver) { + if (typeof Reflect !== "undefined" && Reflect.get) { + _get = Reflect.get; + } else { + _get = function _get(target, property, receiver) { + var base = superPropBase(target, property); + if (!base) return; + var desc = Object.getOwnPropertyDescriptor(base, property); + + if (desc.get) { + return desc.get.call(receiver); + } + + return desc.value; + }; + } + + return _get(target, property, receiver || target); +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js b/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js new file mode 100644 index 0000000..5abafe3 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js @@ -0,0 +1,6 @@ +export default function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/inherits.js b/node_modules/@babel/runtime/helpers/esm/inherits.js new file mode 100644 index 0000000..aee0f10 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/inherits.js @@ -0,0 +1,15 @@ +import setPrototypeOf from "./setPrototypeOf.js"; +export default function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + if (superClass) setPrototypeOf(subClass, superClass); +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js b/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js new file mode 100644 index 0000000..90bb796 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js @@ -0,0 +1,6 @@ +import setPrototypeOf from "./setPrototypeOf.js"; +export default function _inheritsLoose(subClass, superClass) { + subClass.prototype = Object.create(superClass.prototype); + subClass.prototype.constructor = subClass; + setPrototypeOf(subClass, superClass); +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/initializerDefineProperty.js b/node_modules/@babel/runtime/helpers/esm/initializerDefineProperty.js new file mode 100644 index 0000000..26fdea0 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/initializerDefineProperty.js @@ -0,0 +1,9 @@ +export default function _initializerDefineProperty(target, property, descriptor, context) { + if (!descriptor) return; + Object.defineProperty(target, property, { + enumerable: descriptor.enumerable, + configurable: descriptor.configurable, + writable: descriptor.writable, + value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 + }); +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/initializerWarningHelper.js b/node_modules/@babel/runtime/helpers/esm/initializerWarningHelper.js new file mode 100644 index 0000000..30d518c --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/initializerWarningHelper.js @@ -0,0 +1,3 @@ +export default function _initializerWarningHelper(descriptor, context) { + throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/instanceof.js b/node_modules/@babel/runtime/helpers/esm/instanceof.js new file mode 100644 index 0000000..8c43b71 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/instanceof.js @@ -0,0 +1,7 @@ +export default function _instanceof(left, right) { + if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) { + return !!right[Symbol.hasInstance](left); + } else { + return left instanceof right; + } +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/interopRequireDefault.js b/node_modules/@babel/runtime/helpers/esm/interopRequireDefault.js new file mode 100644 index 0000000..c2df7b6 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/interopRequireDefault.js @@ -0,0 +1,5 @@ +export default function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + "default": obj + }; +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/interopRequireWildcard.js b/node_modules/@babel/runtime/helpers/esm/interopRequireWildcard.js new file mode 100644 index 0000000..bc57685 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/interopRequireWildcard.js @@ -0,0 +1,53 @@ +import _typeof from "@babel/runtime/helpers/typeof"; + +function _getRequireWildcardCache() { + if (typeof WeakMap !== "function") return null; + var cache = new WeakMap(); + + _getRequireWildcardCache = function _getRequireWildcardCache() { + return cache; + }; + + return cache; +} + +export default function _interopRequireWildcard(obj) { + if (obj && obj.__esModule) { + return obj; + } + + if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { + return { + "default": obj + }; + } + + var cache = _getRequireWildcardCache(); + + if (cache && cache.has(obj)) { + return cache.get(obj); + } + + var newObj = {}; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + + for (var key in obj) { + if (Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + + newObj["default"] = obj; + + if (cache) { + cache.set(obj, newObj); + } + + return newObj; +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/isNativeFunction.js b/node_modules/@babel/runtime/helpers/esm/isNativeFunction.js new file mode 100644 index 0000000..7b1bc82 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/isNativeFunction.js @@ -0,0 +1,3 @@ +export default function _isNativeFunction(fn) { + return Function.toString.call(fn).indexOf("[native code]") !== -1; +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js b/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js new file mode 100644 index 0000000..0da1624 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js @@ -0,0 +1,12 @@ +export default function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); + return true; + } catch (e) { + return false; + } +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/iterableToArray.js b/node_modules/@babel/runtime/helpers/esm/iterableToArray.js new file mode 100644 index 0000000..6cd6ae3 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/iterableToArray.js @@ -0,0 +1,3 @@ +export default function _iterableToArray(iter) { + if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js b/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js new file mode 100644 index 0000000..6402595 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js @@ -0,0 +1,26 @@ +export default function _iterableToArrayLimit(arr, i) { + if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; + var _arr = []; + var _n = true; + var _d = false; + var _e = undefined; + + try { + for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { + _arr.push(_s.value); + + if (i && _arr.length === i) break; + } + } catch (err) { + _d = true; + _e = err; + } finally { + try { + if (!_n && _i["return"] != null) _i["return"](); + } finally { + if (_d) throw _e; + } + } + + return _arr; +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimitLoose.js b/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimitLoose.js new file mode 100644 index 0000000..025c0ea --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimitLoose.js @@ -0,0 +1,12 @@ +export default function _iterableToArrayLimitLoose(arr, i) { + if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; + var _arr = []; + + for (var _iterator = arr[Symbol.iterator](), _step; !(_step = _iterator.next()).done;) { + _arr.push(_step.value); + + if (i && _arr.length === i) break; + } + + return _arr; +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/jsx.js b/node_modules/@babel/runtime/helpers/esm/jsx.js new file mode 100644 index 0000000..3a98cec --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/jsx.js @@ -0,0 +1,46 @@ +var REACT_ELEMENT_TYPE; +export default function _createRawReactElement(type, props, key, children) { + if (!REACT_ELEMENT_TYPE) { + REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol["for"] && Symbol["for"]("react.element") || 0xeac7; + } + + var defaultProps = type && type.defaultProps; + var childrenLength = arguments.length - 3; + + if (!props && childrenLength !== 0) { + props = { + children: void 0 + }; + } + + if (childrenLength === 1) { + props.children = children; + } else if (childrenLength > 1) { + var childArray = new Array(childrenLength); + + for (var i = 0; i < childrenLength; i++) { + childArray[i] = arguments[i + 3]; + } + + props.children = childArray; + } + + if (props && defaultProps) { + for (var propName in defaultProps) { + if (props[propName] === void 0) { + props[propName] = defaultProps[propName]; + } + } + } else if (!props) { + props = defaultProps || {}; + } + + return { + $$typeof: REACT_ELEMENT_TYPE, + type: type, + key: key === undefined ? null : '' + key, + ref: null, + props: props, + _owner: null + }; +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/maybeArrayLike.js b/node_modules/@babel/runtime/helpers/esm/maybeArrayLike.js new file mode 100644 index 0000000..f687959 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/maybeArrayLike.js @@ -0,0 +1,9 @@ +import arrayLikeToArray from "./arrayLikeToArray.js"; +export default function _maybeArrayLike(next, arr, i) { + if (arr && !Array.isArray(arr) && typeof arr.length === "number") { + var len = arr.length; + return arrayLikeToArray(arr, i !== void 0 && i < len ? i : len); + } + + return next(arr, i); +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/newArrowCheck.js b/node_modules/@babel/runtime/helpers/esm/newArrowCheck.js new file mode 100644 index 0000000..d6cd864 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/newArrowCheck.js @@ -0,0 +1,5 @@ +export default function _newArrowCheck(innerThis, boundThis) { + if (innerThis !== boundThis) { + throw new TypeError("Cannot instantiate an arrow function"); + } +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js b/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js new file mode 100644 index 0000000..b349d00 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js @@ -0,0 +1,3 @@ +export default function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js b/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js new file mode 100644 index 0000000..82d8296 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js @@ -0,0 +1,3 @@ +export default function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/objectDestructuringEmpty.js b/node_modules/@babel/runtime/helpers/esm/objectDestructuringEmpty.js new file mode 100644 index 0000000..82b67d2 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/objectDestructuringEmpty.js @@ -0,0 +1,3 @@ +export default function _objectDestructuringEmpty(obj) { + if (obj == null) throw new TypeError("Cannot destructure undefined"); +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/objectSpread.js b/node_modules/@babel/runtime/helpers/esm/objectSpread.js new file mode 100644 index 0000000..8c38ca7 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/objectSpread.js @@ -0,0 +1,19 @@ +import defineProperty from "./defineProperty.js"; +export default function _objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i] != null ? Object(arguments[i]) : {}; + var ownKeys = Object.keys(source); + + if (typeof Object.getOwnPropertySymbols === 'function') { + ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { + return Object.getOwnPropertyDescriptor(source, sym).enumerable; + })); + } + + ownKeys.forEach(function (key) { + defineProperty(target, key, source[key]); + }); + } + + return target; +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/objectSpread2.js b/node_modules/@babel/runtime/helpers/esm/objectSpread2.js new file mode 100644 index 0000000..fcdd81b --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/objectSpread2.js @@ -0,0 +1,35 @@ +import defineProperty from "./defineProperty.js"; + +function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + if (enumerableOnly) symbols = symbols.filter(function (sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }); + keys.push.apply(keys, symbols); + } + + return keys; +} + +export default function _objectSpread2(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i] != null ? arguments[i] : {}; + + if (i % 2) { + ownKeys(Object(source), true).forEach(function (key) { + defineProperty(target, key, source[key]); + }); + } else if (Object.getOwnPropertyDescriptors) { + Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); + } else { + ownKeys(Object(source)).forEach(function (key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); + } + } + + return target; +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js b/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js new file mode 100644 index 0000000..0fef321 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js @@ -0,0 +1,19 @@ +import objectWithoutPropertiesLoose from "./objectWithoutPropertiesLoose.js"; +export default function _objectWithoutProperties(source, excluded) { + if (source == null) return {}; + var target = objectWithoutPropertiesLoose(source, excluded); + var key, i; + + if (Object.getOwnPropertySymbols) { + var sourceSymbolKeys = Object.getOwnPropertySymbols(source); + + for (i = 0; i < sourceSymbolKeys.length; i++) { + key = sourceSymbolKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; + target[key] = source[key]; + } + } + + return target; +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js b/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js new file mode 100644 index 0000000..c36815c --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js @@ -0,0 +1,14 @@ +export default function _objectWithoutPropertiesLoose(source, excluded) { + if (source == null) return {}; + var target = {}; + var sourceKeys = Object.keys(source); + var key, i; + + for (i = 0; i < sourceKeys.length; i++) { + key = sourceKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + target[key] = source[key]; + } + + return target; +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/package.json b/node_modules/@babel/runtime/helpers/esm/package.json new file mode 100644 index 0000000..aead43d --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/package.json @@ -0,0 +1,3 @@ +{ + "type": "module" +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js b/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js new file mode 100644 index 0000000..0ae22f4 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js @@ -0,0 +1,9 @@ +import _typeof from "@babel/runtime/helpers/typeof"; +import assertThisInitialized from "./assertThisInitialized.js"; +export default function _possibleConstructorReturn(self, call) { + if (call && (_typeof(call) === "object" || typeof call === "function")) { + return call; + } + + return assertThisInitialized(self); +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/readOnlyError.js b/node_modules/@babel/runtime/helpers/esm/readOnlyError.js new file mode 100644 index 0000000..166e40e --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/readOnlyError.js @@ -0,0 +1,3 @@ +export default function _readOnlyError(name) { + throw new TypeError("\"" + name + "\" is read-only"); +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/set.js b/node_modules/@babel/runtime/helpers/esm/set.js new file mode 100644 index 0000000..9c54773 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/set.js @@ -0,0 +1,51 @@ +import superPropBase from "./superPropBase.js"; +import defineProperty from "./defineProperty.js"; + +function set(target, property, value, receiver) { + if (typeof Reflect !== "undefined" && Reflect.set) { + set = Reflect.set; + } else { + set = function set(target, property, value, receiver) { + var base = superPropBase(target, property); + var desc; + + if (base) { + desc = Object.getOwnPropertyDescriptor(base, property); + + if (desc.set) { + desc.set.call(receiver, value); + return true; + } else if (!desc.writable) { + return false; + } + } + + desc = Object.getOwnPropertyDescriptor(receiver, property); + + if (desc) { + if (!desc.writable) { + return false; + } + + desc.value = value; + Object.defineProperty(receiver, property, desc); + } else { + defineProperty(receiver, property, value); + } + + return true; + }; + } + + return set(target, property, value, receiver); +} + +export default function _set(target, property, value, receiver, isStrict) { + var s = set(target, property, value, receiver || target); + + if (!s && isStrict) { + throw new Error('failed to set property'); + } + + return value; +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js b/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js new file mode 100644 index 0000000..e6ef03e --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js @@ -0,0 +1,8 @@ +export default function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + + return _setPrototypeOf(o, p); +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/skipFirstGeneratorNext.js b/node_modules/@babel/runtime/helpers/esm/skipFirstGeneratorNext.js new file mode 100644 index 0000000..cadd9bb --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/skipFirstGeneratorNext.js @@ -0,0 +1,7 @@ +export default function _skipFirstGeneratorNext(fn) { + return function () { + var it = fn.apply(this, arguments); + it.next(); + return it; + }; +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/slicedToArray.js b/node_modules/@babel/runtime/helpers/esm/slicedToArray.js new file mode 100644 index 0000000..618200b --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/slicedToArray.js @@ -0,0 +1,7 @@ +import arrayWithHoles from "./arrayWithHoles.js"; +import iterableToArrayLimit from "./iterableToArrayLimit.js"; +import unsupportedIterableToArray from "./unsupportedIterableToArray.js"; +import nonIterableRest from "./nonIterableRest.js"; +export default function _slicedToArray(arr, i) { + return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest(); +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/slicedToArrayLoose.js b/node_modules/@babel/runtime/helpers/esm/slicedToArrayLoose.js new file mode 100644 index 0000000..efc7429 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/slicedToArrayLoose.js @@ -0,0 +1,7 @@ +import arrayWithHoles from "./arrayWithHoles.js"; +import iterableToArrayLimitLoose from "./iterableToArrayLimitLoose.js"; +import unsupportedIterableToArray from "./unsupportedIterableToArray.js"; +import nonIterableRest from "./nonIterableRest.js"; +export default function _slicedToArrayLoose(arr, i) { + return arrayWithHoles(arr) || iterableToArrayLimitLoose(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest(); +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/superPropBase.js b/node_modules/@babel/runtime/helpers/esm/superPropBase.js new file mode 100644 index 0000000..feffe6f --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/superPropBase.js @@ -0,0 +1,9 @@ +import getPrototypeOf from "./getPrototypeOf.js"; +export default function _superPropBase(object, property) { + while (!Object.prototype.hasOwnProperty.call(object, property)) { + object = getPrototypeOf(object); + if (object === null) break; + } + + return object; +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js b/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js new file mode 100644 index 0000000..421f18a --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js @@ -0,0 +1,11 @@ +export default function _taggedTemplateLiteral(strings, raw) { + if (!raw) { + raw = strings.slice(0); + } + + return Object.freeze(Object.defineProperties(strings, { + raw: { + value: Object.freeze(raw) + } + })); +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteralLoose.js b/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteralLoose.js new file mode 100644 index 0000000..c8f081e --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteralLoose.js @@ -0,0 +1,8 @@ +export default function _taggedTemplateLiteralLoose(strings, raw) { + if (!raw) { + raw = strings.slice(0); + } + + strings.raw = raw; + return strings; +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/tdz.js b/node_modules/@babel/runtime/helpers/esm/tdz.js new file mode 100644 index 0000000..d5d0adc --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/tdz.js @@ -0,0 +1,3 @@ +export default function _tdzError(name) { + throw new ReferenceError(name + " is not defined - temporal dead zone"); +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/temporalRef.js b/node_modules/@babel/runtime/helpers/esm/temporalRef.js new file mode 100644 index 0000000..b25f7c4 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/temporalRef.js @@ -0,0 +1,5 @@ +import undef from "./temporalUndefined.js"; +import err from "./tdz.js"; +export default function _temporalRef(val, name) { + return val === undef ? err(name) : val; +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/temporalUndefined.js b/node_modules/@babel/runtime/helpers/esm/temporalUndefined.js new file mode 100644 index 0000000..1a35717 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/temporalUndefined.js @@ -0,0 +1 @@ +export default function _temporalUndefined() {} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/toArray.js b/node_modules/@babel/runtime/helpers/esm/toArray.js new file mode 100644 index 0000000..ad7c871 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/toArray.js @@ -0,0 +1,7 @@ +import arrayWithHoles from "./arrayWithHoles.js"; +import iterableToArray from "./iterableToArray.js"; +import unsupportedIterableToArray from "./unsupportedIterableToArray.js"; +import nonIterableRest from "./nonIterableRest.js"; +export default function _toArray(arr) { + return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest(); +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js b/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js new file mode 100644 index 0000000..bd91285 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js @@ -0,0 +1,7 @@ +import arrayWithoutHoles from "./arrayWithoutHoles.js"; +import iterableToArray from "./iterableToArray.js"; +import unsupportedIterableToArray from "./unsupportedIterableToArray.js"; +import nonIterableSpread from "./nonIterableSpread.js"; +export default function _toConsumableArray(arr) { + return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread(); +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/toPrimitive.js b/node_modules/@babel/runtime/helpers/esm/toPrimitive.js new file mode 100644 index 0000000..4cb70a5 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/toPrimitive.js @@ -0,0 +1,13 @@ +import _typeof from "@babel/runtime/helpers/typeof"; +export default function _toPrimitive(input, hint) { + if (_typeof(input) !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + + if (prim !== undefined) { + var res = prim.call(input, hint || "default"); + if (_typeof(res) !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + + return (hint === "string" ? String : Number)(input); +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js b/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js new file mode 100644 index 0000000..f1ba8a2 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js @@ -0,0 +1,6 @@ +import _typeof from "@babel/runtime/helpers/typeof"; +import toPrimitive from "./toPrimitive.js"; +export default function _toPropertyKey(arg) { + var key = toPrimitive(arg, "string"); + return _typeof(key) === "symbol" ? key : String(key); +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/typeof.js b/node_modules/@babel/runtime/helpers/esm/typeof.js new file mode 100644 index 0000000..eb444f7 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/typeof.js @@ -0,0 +1,15 @@ +export default function _typeof(obj) { + "@babel/helpers - typeof"; + + if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { + _typeof = function _typeof(obj) { + return typeof obj; + }; + } else { + _typeof = function _typeof(obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }; + } + + return _typeof(obj); +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js b/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js new file mode 100644 index 0000000..c0f63bd --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js @@ -0,0 +1,9 @@ +import arrayLikeToArray from "./arrayLikeToArray.js"; +export default function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen); +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/wrapAsyncGenerator.js b/node_modules/@babel/runtime/helpers/esm/wrapAsyncGenerator.js new file mode 100644 index 0000000..723b2dd --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/wrapAsyncGenerator.js @@ -0,0 +1,6 @@ +import AsyncGenerator from "./AsyncGenerator.js"; +export default function _wrapAsyncGenerator(fn) { + return function () { + return new AsyncGenerator(fn.apply(this, arguments)); + }; +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js b/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js new file mode 100644 index 0000000..512630d --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js @@ -0,0 +1,37 @@ +import getPrototypeOf from "./getPrototypeOf.js"; +import setPrototypeOf from "./setPrototypeOf.js"; +import isNativeFunction from "./isNativeFunction.js"; +import construct from "./construct.js"; +export default function _wrapNativeSuper(Class) { + var _cache = typeof Map === "function" ? new Map() : undefined; + + _wrapNativeSuper = function _wrapNativeSuper(Class) { + if (Class === null || !isNativeFunction(Class)) return Class; + + if (typeof Class !== "function") { + throw new TypeError("Super expression must either be null or a function"); + } + + if (typeof _cache !== "undefined") { + if (_cache.has(Class)) return _cache.get(Class); + + _cache.set(Class, Wrapper); + } + + function Wrapper() { + return construct(Class, arguments, getPrototypeOf(this).constructor); + } + + Wrapper.prototype = Object.create(Class.prototype, { + constructor: { + value: Wrapper, + enumerable: false, + writable: true, + configurable: true + } + }); + return setPrototypeOf(Wrapper, Class); + }; + + return _wrapNativeSuper(Class); +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/wrapRegExp.js b/node_modules/@babel/runtime/helpers/esm/wrapRegExp.js new file mode 100644 index 0000000..eb49ca3 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/wrapRegExp.js @@ -0,0 +1,69 @@ +import _typeof from "@babel/runtime/helpers/typeof"; +import wrapNativeSuper from "./wrapNativeSuper.js"; +import getPrototypeOf from "./getPrototypeOf.js"; +import possibleConstructorReturn from "./possibleConstructorReturn.js"; +import inherits from "./inherits.js"; +export default function _wrapRegExp(re, groups) { + _wrapRegExp = function _wrapRegExp(re, groups) { + return new BabelRegExp(re, undefined, groups); + }; + + var _RegExp = wrapNativeSuper(RegExp); + + var _super = RegExp.prototype; + + var _groups = new WeakMap(); + + function BabelRegExp(re, flags, groups) { + var _this = _RegExp.call(this, re, flags); + + _groups.set(_this, groups || _groups.get(re)); + + return _this; + } + + inherits(BabelRegExp, _RegExp); + + BabelRegExp.prototype.exec = function (str) { + var result = _super.exec.call(this, str); + + if (result) result.groups = buildGroups(result, this); + return result; + }; + + BabelRegExp.prototype[Symbol.replace] = function (str, substitution) { + if (typeof substitution === "string") { + var groups = _groups.get(this); + + return _super[Symbol.replace].call(this, str, substitution.replace(/\$<([^>]+)>/g, function (_, name) { + return "$" + groups[name]; + })); + } else if (typeof substitution === "function") { + var _this = this; + + return _super[Symbol.replace].call(this, str, function () { + var args = []; + args.push.apply(args, arguments); + + if (_typeof(args[args.length - 1]) !== "object") { + args.push(buildGroups(args, _this)); + } + + return substitution.apply(this, args); + }); + } else { + return _super[Symbol.replace].call(this, str, substitution); + } + }; + + function buildGroups(result, re) { + var g = _groups.get(re); + + return Object.keys(g).reduce(function (groups, name) { + groups[name] = result[g[name]]; + return groups; + }, Object.create(null)); + } + + return _wrapRegExp.apply(this, arguments); +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/writeOnlyError.js b/node_modules/@babel/runtime/helpers/esm/writeOnlyError.js new file mode 100644 index 0000000..9170bd4 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/writeOnlyError.js @@ -0,0 +1,3 @@ +export default function _writeOnlyError(name) { + throw new TypeError("\"" + name + "\" is write-only"); +} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/extends.js b/node_modules/@babel/runtime/helpers/extends.js new file mode 100644 index 0000000..eaf9547 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/extends.js @@ -0,0 +1,21 @@ +function _extends() { + module.exports = _extends = Object.assign || function (target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + + return target; + }; + + module.exports["default"] = module.exports, module.exports.__esModule = true; + return _extends.apply(this, arguments); +} + +module.exports = _extends; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/get.js b/node_modules/@babel/runtime/helpers/get.js new file mode 100644 index 0000000..3ed600f --- /dev/null +++ b/node_modules/@babel/runtime/helpers/get.js @@ -0,0 +1,27 @@ +var superPropBase = require("./superPropBase.js"); + +function _get(target, property, receiver) { + if (typeof Reflect !== "undefined" && Reflect.get) { + module.exports = _get = Reflect.get; + module.exports["default"] = module.exports, module.exports.__esModule = true; + } else { + module.exports = _get = function _get(target, property, receiver) { + var base = superPropBase(target, property); + if (!base) return; + var desc = Object.getOwnPropertyDescriptor(base, property); + + if (desc.get) { + return desc.get.call(receiver); + } + + return desc.value; + }; + + module.exports["default"] = module.exports, module.exports.__esModule = true; + } + + return _get(target, property, receiver || target); +} + +module.exports = _get; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/getPrototypeOf.js b/node_modules/@babel/runtime/helpers/getPrototypeOf.js new file mode 100644 index 0000000..a6916eb --- /dev/null +++ b/node_modules/@babel/runtime/helpers/getPrototypeOf.js @@ -0,0 +1,10 @@ +function _getPrototypeOf(o) { + module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + module.exports["default"] = module.exports, module.exports.__esModule = true; + return _getPrototypeOf(o); +} + +module.exports = _getPrototypeOf; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/inherits.js b/node_modules/@babel/runtime/helpers/inherits.js new file mode 100644 index 0000000..3003e01 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/inherits.js @@ -0,0 +1,19 @@ +var setPrototypeOf = require("./setPrototypeOf.js"); + +function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + if (superClass) setPrototypeOf(subClass, superClass); +} + +module.exports = _inherits; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/inheritsLoose.js b/node_modules/@babel/runtime/helpers/inheritsLoose.js new file mode 100644 index 0000000..93e4305 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/inheritsLoose.js @@ -0,0 +1,10 @@ +var setPrototypeOf = require("./setPrototypeOf.js"); + +function _inheritsLoose(subClass, superClass) { + subClass.prototype = Object.create(superClass.prototype); + subClass.prototype.constructor = subClass; + setPrototypeOf(subClass, superClass); +} + +module.exports = _inheritsLoose; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/initializerDefineProperty.js b/node_modules/@babel/runtime/helpers/initializerDefineProperty.js new file mode 100644 index 0000000..6b1069e --- /dev/null +++ b/node_modules/@babel/runtime/helpers/initializerDefineProperty.js @@ -0,0 +1,12 @@ +function _initializerDefineProperty(target, property, descriptor, context) { + if (!descriptor) return; + Object.defineProperty(target, property, { + enumerable: descriptor.enumerable, + configurable: descriptor.configurable, + writable: descriptor.writable, + value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 + }); +} + +module.exports = _initializerDefineProperty; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/initializerWarningHelper.js b/node_modules/@babel/runtime/helpers/initializerWarningHelper.js new file mode 100644 index 0000000..9d02886 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/initializerWarningHelper.js @@ -0,0 +1,6 @@ +function _initializerWarningHelper(descriptor, context) { + throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); +} + +module.exports = _initializerWarningHelper; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/instanceof.js b/node_modules/@babel/runtime/helpers/instanceof.js new file mode 100644 index 0000000..654ebc8 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/instanceof.js @@ -0,0 +1,10 @@ +function _instanceof(left, right) { + if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) { + return !!right[Symbol.hasInstance](left); + } else { + return left instanceof right; + } +} + +module.exports = _instanceof; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/interopRequireDefault.js b/node_modules/@babel/runtime/helpers/interopRequireDefault.js new file mode 100644 index 0000000..6a21368 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/interopRequireDefault.js @@ -0,0 +1,8 @@ +function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + "default": obj + }; +} + +module.exports = _interopRequireDefault; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/interopRequireWildcard.js b/node_modules/@babel/runtime/helpers/interopRequireWildcard.js new file mode 100644 index 0000000..7831929 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/interopRequireWildcard.js @@ -0,0 +1,56 @@ +var _typeof = require("@babel/runtime/helpers/typeof")["default"]; + +function _getRequireWildcardCache() { + if (typeof WeakMap !== "function") return null; + var cache = new WeakMap(); + + _getRequireWildcardCache = function _getRequireWildcardCache() { + return cache; + }; + + return cache; +} + +function _interopRequireWildcard(obj) { + if (obj && obj.__esModule) { + return obj; + } + + if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { + return { + "default": obj + }; + } + + var cache = _getRequireWildcardCache(); + + if (cache && cache.has(obj)) { + return cache.get(obj); + } + + var newObj = {}; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + + for (var key in obj) { + if (Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + + newObj["default"] = obj; + + if (cache) { + cache.set(obj, newObj); + } + + return newObj; +} + +module.exports = _interopRequireWildcard; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/isNativeFunction.js b/node_modules/@babel/runtime/helpers/isNativeFunction.js new file mode 100644 index 0000000..50eb8f5 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/isNativeFunction.js @@ -0,0 +1,6 @@ +function _isNativeFunction(fn) { + return Function.toString.call(fn).indexOf("[native code]") !== -1; +} + +module.exports = _isNativeFunction; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js b/node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js new file mode 100644 index 0000000..3a201a6 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js @@ -0,0 +1,15 @@ +function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + + try { + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); + return true; + } catch (e) { + return false; + } +} + +module.exports = _isNativeReflectConstruct; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/iterableToArray.js b/node_modules/@babel/runtime/helpers/iterableToArray.js new file mode 100644 index 0000000..e5a5d6b --- /dev/null +++ b/node_modules/@babel/runtime/helpers/iterableToArray.js @@ -0,0 +1,6 @@ +function _iterableToArray(iter) { + if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); +} + +module.exports = _iterableToArray; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js b/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js new file mode 100644 index 0000000..41fb57a --- /dev/null +++ b/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js @@ -0,0 +1,29 @@ +function _iterableToArrayLimit(arr, i) { + if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; + var _arr = []; + var _n = true; + var _d = false; + var _e = undefined; + + try { + for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { + _arr.push(_s.value); + + if (i && _arr.length === i) break; + } + } catch (err) { + _d = true; + _e = err; + } finally { + try { + if (!_n && _i["return"] != null) _i["return"](); + } finally { + if (_d) throw _e; + } + } + + return _arr; +} + +module.exports = _iterableToArrayLimit; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/iterableToArrayLimitLoose.js b/node_modules/@babel/runtime/helpers/iterableToArrayLimitLoose.js new file mode 100644 index 0000000..ddbc8aa --- /dev/null +++ b/node_modules/@babel/runtime/helpers/iterableToArrayLimitLoose.js @@ -0,0 +1,15 @@ +function _iterableToArrayLimitLoose(arr, i) { + if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; + var _arr = []; + + for (var _iterator = arr[Symbol.iterator](), _step; !(_step = _iterator.next()).done;) { + _arr.push(_step.value); + + if (i && _arr.length === i) break; + } + + return _arr; +} + +module.exports = _iterableToArrayLimitLoose; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/jsx.js b/node_modules/@babel/runtime/helpers/jsx.js new file mode 100644 index 0000000..8c86154 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/jsx.js @@ -0,0 +1,50 @@ +var REACT_ELEMENT_TYPE; + +function _createRawReactElement(type, props, key, children) { + if (!REACT_ELEMENT_TYPE) { + REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol["for"] && Symbol["for"]("react.element") || 0xeac7; + } + + var defaultProps = type && type.defaultProps; + var childrenLength = arguments.length - 3; + + if (!props && childrenLength !== 0) { + props = { + children: void 0 + }; + } + + if (childrenLength === 1) { + props.children = children; + } else if (childrenLength > 1) { + var childArray = new Array(childrenLength); + + for (var i = 0; i < childrenLength; i++) { + childArray[i] = arguments[i + 3]; + } + + props.children = childArray; + } + + if (props && defaultProps) { + for (var propName in defaultProps) { + if (props[propName] === void 0) { + props[propName] = defaultProps[propName]; + } + } + } else if (!props) { + props = defaultProps || {}; + } + + return { + $$typeof: REACT_ELEMENT_TYPE, + type: type, + key: key === undefined ? null : '' + key, + ref: null, + props: props, + _owner: null + }; +} + +module.exports = _createRawReactElement; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/maybeArrayLike.js b/node_modules/@babel/runtime/helpers/maybeArrayLike.js new file mode 100644 index 0000000..3ab618b --- /dev/null +++ b/node_modules/@babel/runtime/helpers/maybeArrayLike.js @@ -0,0 +1,13 @@ +var arrayLikeToArray = require("./arrayLikeToArray.js"); + +function _maybeArrayLike(next, arr, i) { + if (arr && !Array.isArray(arr) && typeof arr.length === "number") { + var len = arr.length; + return arrayLikeToArray(arr, i !== void 0 && i < len ? i : len); + } + + return next(arr, i); +} + +module.exports = _maybeArrayLike; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/newArrowCheck.js b/node_modules/@babel/runtime/helpers/newArrowCheck.js new file mode 100644 index 0000000..8d7570b --- /dev/null +++ b/node_modules/@babel/runtime/helpers/newArrowCheck.js @@ -0,0 +1,8 @@ +function _newArrowCheck(innerThis, boundThis) { + if (innerThis !== boundThis) { + throw new TypeError("Cannot instantiate an arrow function"); + } +} + +module.exports = _newArrowCheck; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/nonIterableRest.js b/node_modules/@babel/runtime/helpers/nonIterableRest.js new file mode 100644 index 0000000..22be4f5 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/nonIterableRest.js @@ -0,0 +1,6 @@ +function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +} + +module.exports = _nonIterableRest; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/nonIterableSpread.js b/node_modules/@babel/runtime/helpers/nonIterableSpread.js new file mode 100644 index 0000000..4ba722d --- /dev/null +++ b/node_modules/@babel/runtime/helpers/nonIterableSpread.js @@ -0,0 +1,6 @@ +function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +} + +module.exports = _nonIterableSpread; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/objectDestructuringEmpty.js b/node_modules/@babel/runtime/helpers/objectDestructuringEmpty.js new file mode 100644 index 0000000..1bb88ac --- /dev/null +++ b/node_modules/@babel/runtime/helpers/objectDestructuringEmpty.js @@ -0,0 +1,6 @@ +function _objectDestructuringEmpty(obj) { + if (obj == null) throw new TypeError("Cannot destructure undefined"); +} + +module.exports = _objectDestructuringEmpty; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/objectSpread.js b/node_modules/@babel/runtime/helpers/objectSpread.js new file mode 100644 index 0000000..00af209 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/objectSpread.js @@ -0,0 +1,23 @@ +var defineProperty = require("./defineProperty.js"); + +function _objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i] != null ? Object(arguments[i]) : {}; + var ownKeys = Object.keys(source); + + if (typeof Object.getOwnPropertySymbols === 'function') { + ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { + return Object.getOwnPropertyDescriptor(source, sym).enumerable; + })); + } + + ownKeys.forEach(function (key) { + defineProperty(target, key, source[key]); + }); + } + + return target; +} + +module.exports = _objectSpread; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/objectSpread2.js b/node_modules/@babel/runtime/helpers/objectSpread2.js new file mode 100644 index 0000000..e121f36 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/objectSpread2.js @@ -0,0 +1,38 @@ +var defineProperty = require("./defineProperty.js"); + +function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + if (enumerableOnly) symbols = symbols.filter(function (sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }); + keys.push.apply(keys, symbols); + } + + return keys; +} + +function _objectSpread2(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i] != null ? arguments[i] : {}; + + if (i % 2) { + ownKeys(Object(source), true).forEach(function (key) { + defineProperty(target, key, source[key]); + }); + } else if (Object.getOwnPropertyDescriptors) { + Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); + } else { + ownKeys(Object(source)).forEach(function (key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); + } + } + + return target; +} + +module.exports = _objectSpread2; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/objectWithoutProperties.js b/node_modules/@babel/runtime/helpers/objectWithoutProperties.js new file mode 100644 index 0000000..c000db7 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/objectWithoutProperties.js @@ -0,0 +1,23 @@ +var objectWithoutPropertiesLoose = require("./objectWithoutPropertiesLoose.js"); + +function _objectWithoutProperties(source, excluded) { + if (source == null) return {}; + var target = objectWithoutPropertiesLoose(source, excluded); + var key, i; + + if (Object.getOwnPropertySymbols) { + var sourceSymbolKeys = Object.getOwnPropertySymbols(source); + + for (i = 0; i < sourceSymbolKeys.length; i++) { + key = sourceSymbolKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; + target[key] = source[key]; + } + } + + return target; +} + +module.exports = _objectWithoutProperties; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js b/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js new file mode 100644 index 0000000..d9a73de --- /dev/null +++ b/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js @@ -0,0 +1,17 @@ +function _objectWithoutPropertiesLoose(source, excluded) { + if (source == null) return {}; + var target = {}; + var sourceKeys = Object.keys(source); + var key, i; + + for (i = 0; i < sourceKeys.length; i++) { + key = sourceKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + target[key] = source[key]; + } + + return target; +} + +module.exports = _objectWithoutPropertiesLoose; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js b/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js new file mode 100644 index 0000000..259ea2b --- /dev/null +++ b/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js @@ -0,0 +1,14 @@ +var _typeof = require("@babel/runtime/helpers/typeof")["default"]; + +var assertThisInitialized = require("./assertThisInitialized.js"); + +function _possibleConstructorReturn(self, call) { + if (call && (_typeof(call) === "object" || typeof call === "function")) { + return call; + } + + return assertThisInitialized(self); +} + +module.exports = _possibleConstructorReturn; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/readOnlyError.js b/node_modules/@babel/runtime/helpers/readOnlyError.js new file mode 100644 index 0000000..e805f89 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/readOnlyError.js @@ -0,0 +1,6 @@ +function _readOnlyError(name) { + throw new TypeError("\"" + name + "\" is read-only"); +} + +module.exports = _readOnlyError; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/set.js b/node_modules/@babel/runtime/helpers/set.js new file mode 100644 index 0000000..b7d184d --- /dev/null +++ b/node_modules/@babel/runtime/helpers/set.js @@ -0,0 +1,55 @@ +var superPropBase = require("./superPropBase.js"); + +var defineProperty = require("./defineProperty.js"); + +function set(target, property, value, receiver) { + if (typeof Reflect !== "undefined" && Reflect.set) { + set = Reflect.set; + } else { + set = function set(target, property, value, receiver) { + var base = superPropBase(target, property); + var desc; + + if (base) { + desc = Object.getOwnPropertyDescriptor(base, property); + + if (desc.set) { + desc.set.call(receiver, value); + return true; + } else if (!desc.writable) { + return false; + } + } + + desc = Object.getOwnPropertyDescriptor(receiver, property); + + if (desc) { + if (!desc.writable) { + return false; + } + + desc.value = value; + Object.defineProperty(receiver, property, desc); + } else { + defineProperty(receiver, property, value); + } + + return true; + }; + } + + return set(target, property, value, receiver); +} + +function _set(target, property, value, receiver, isStrict) { + var s = set(target, property, value, receiver || target); + + if (!s && isStrict) { + throw new Error('failed to set property'); + } + + return value; +} + +module.exports = _set; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/setPrototypeOf.js b/node_modules/@babel/runtime/helpers/setPrototypeOf.js new file mode 100644 index 0000000..415797b --- /dev/null +++ b/node_modules/@babel/runtime/helpers/setPrototypeOf.js @@ -0,0 +1,12 @@ +function _setPrototypeOf(o, p) { + module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + + module.exports["default"] = module.exports, module.exports.__esModule = true; + return _setPrototypeOf(o, p); +} + +module.exports = _setPrototypeOf; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/skipFirstGeneratorNext.js b/node_modules/@babel/runtime/helpers/skipFirstGeneratorNext.js new file mode 100644 index 0000000..ed60585 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/skipFirstGeneratorNext.js @@ -0,0 +1,10 @@ +function _skipFirstGeneratorNext(fn) { + return function () { + var it = fn.apply(this, arguments); + it.next(); + return it; + }; +} + +module.exports = _skipFirstGeneratorNext; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/slicedToArray.js b/node_modules/@babel/runtime/helpers/slicedToArray.js new file mode 100644 index 0000000..101f404 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/slicedToArray.js @@ -0,0 +1,14 @@ +var arrayWithHoles = require("./arrayWithHoles.js"); + +var iterableToArrayLimit = require("./iterableToArrayLimit.js"); + +var unsupportedIterableToArray = require("./unsupportedIterableToArray.js"); + +var nonIterableRest = require("./nonIterableRest.js"); + +function _slicedToArray(arr, i) { + return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest(); +} + +module.exports = _slicedToArray; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/slicedToArrayLoose.js b/node_modules/@babel/runtime/helpers/slicedToArrayLoose.js new file mode 100644 index 0000000..188db63 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/slicedToArrayLoose.js @@ -0,0 +1,14 @@ +var arrayWithHoles = require("./arrayWithHoles.js"); + +var iterableToArrayLimitLoose = require("./iterableToArrayLimitLoose.js"); + +var unsupportedIterableToArray = require("./unsupportedIterableToArray.js"); + +var nonIterableRest = require("./nonIterableRest.js"); + +function _slicedToArrayLoose(arr, i) { + return arrayWithHoles(arr) || iterableToArrayLimitLoose(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest(); +} + +module.exports = _slicedToArrayLoose; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/superPropBase.js b/node_modules/@babel/runtime/helpers/superPropBase.js new file mode 100644 index 0000000..ce12a88 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/superPropBase.js @@ -0,0 +1,13 @@ +var getPrototypeOf = require("./getPrototypeOf.js"); + +function _superPropBase(object, property) { + while (!Object.prototype.hasOwnProperty.call(object, property)) { + object = getPrototypeOf(object); + if (object === null) break; + } + + return object; +} + +module.exports = _superPropBase; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js b/node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js new file mode 100644 index 0000000..1a524b3 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js @@ -0,0 +1,14 @@ +function _taggedTemplateLiteral(strings, raw) { + if (!raw) { + raw = strings.slice(0); + } + + return Object.freeze(Object.defineProperties(strings, { + raw: { + value: Object.freeze(raw) + } + })); +} + +module.exports = _taggedTemplateLiteral; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/taggedTemplateLiteralLoose.js b/node_modules/@babel/runtime/helpers/taggedTemplateLiteralLoose.js new file mode 100644 index 0000000..ab78e62 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/taggedTemplateLiteralLoose.js @@ -0,0 +1,11 @@ +function _taggedTemplateLiteralLoose(strings, raw) { + if (!raw) { + raw = strings.slice(0); + } + + strings.raw = raw; + return strings; +} + +module.exports = _taggedTemplateLiteralLoose; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/tdz.js b/node_modules/@babel/runtime/helpers/tdz.js new file mode 100644 index 0000000..a5b35a6 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/tdz.js @@ -0,0 +1,6 @@ +function _tdzError(name) { + throw new ReferenceError(name + " is not defined - temporal dead zone"); +} + +module.exports = _tdzError; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/temporalRef.js b/node_modules/@babel/runtime/helpers/temporalRef.js new file mode 100644 index 0000000..d4e9460 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/temporalRef.js @@ -0,0 +1,10 @@ +var temporalUndefined = require("./temporalUndefined.js"); + +var tdz = require("./tdz.js"); + +function _temporalRef(val, name) { + return val === temporalUndefined ? tdz(name) : val; +} + +module.exports = _temporalRef; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/temporalUndefined.js b/node_modules/@babel/runtime/helpers/temporalUndefined.js new file mode 100644 index 0000000..aeae645 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/temporalUndefined.js @@ -0,0 +1,4 @@ +function _temporalUndefined() {} + +module.exports = _temporalUndefined; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/toArray.js b/node_modules/@babel/runtime/helpers/toArray.js new file mode 100644 index 0000000..3b911bd --- /dev/null +++ b/node_modules/@babel/runtime/helpers/toArray.js @@ -0,0 +1,14 @@ +var arrayWithHoles = require("./arrayWithHoles.js"); + +var iterableToArray = require("./iterableToArray.js"); + +var unsupportedIterableToArray = require("./unsupportedIterableToArray.js"); + +var nonIterableRest = require("./nonIterableRest.js"); + +function _toArray(arr) { + return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest(); +} + +module.exports = _toArray; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/toConsumableArray.js b/node_modules/@babel/runtime/helpers/toConsumableArray.js new file mode 100644 index 0000000..f084cd1 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/toConsumableArray.js @@ -0,0 +1,14 @@ +var arrayWithoutHoles = require("./arrayWithoutHoles.js"); + +var iterableToArray = require("./iterableToArray.js"); + +var unsupportedIterableToArray = require("./unsupportedIterableToArray.js"); + +var nonIterableSpread = require("./nonIterableSpread.js"); + +function _toConsumableArray(arr) { + return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread(); +} + +module.exports = _toConsumableArray; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/toPrimitive.js b/node_modules/@babel/runtime/helpers/toPrimitive.js new file mode 100644 index 0000000..ac40338 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/toPrimitive.js @@ -0,0 +1,17 @@ +var _typeof = require("@babel/runtime/helpers/typeof")["default"]; + +function _toPrimitive(input, hint) { + if (_typeof(input) !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + + if (prim !== undefined) { + var res = prim.call(input, hint || "default"); + if (_typeof(res) !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + + return (hint === "string" ? String : Number)(input); +} + +module.exports = _toPrimitive; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/toPropertyKey.js b/node_modules/@babel/runtime/helpers/toPropertyKey.js new file mode 100644 index 0000000..066b3f2 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/toPropertyKey.js @@ -0,0 +1,11 @@ +var _typeof = require("@babel/runtime/helpers/typeof")["default"]; + +var toPrimitive = require("./toPrimitive.js"); + +function _toPropertyKey(arg) { + var key = toPrimitive(arg, "string"); + return _typeof(key) === "symbol" ? key : String(key); +} + +module.exports = _toPropertyKey; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/typeof.js b/node_modules/@babel/runtime/helpers/typeof.js new file mode 100644 index 0000000..02a5d8a --- /dev/null +++ b/node_modules/@babel/runtime/helpers/typeof.js @@ -0,0 +1,22 @@ +function _typeof(obj) { + "@babel/helpers - typeof"; + + if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { + module.exports = _typeof = function _typeof(obj) { + return typeof obj; + }; + + module.exports["default"] = module.exports, module.exports.__esModule = true; + } else { + module.exports = _typeof = function _typeof(obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }; + + module.exports["default"] = module.exports, module.exports.__esModule = true; + } + + return _typeof(obj); +} + +module.exports = _typeof; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js b/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js new file mode 100644 index 0000000..11bca7b --- /dev/null +++ b/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js @@ -0,0 +1,13 @@ +var arrayLikeToArray = require("./arrayLikeToArray.js"); + +function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen); +} + +module.exports = _unsupportedIterableToArray; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/wrapAsyncGenerator.js b/node_modules/@babel/runtime/helpers/wrapAsyncGenerator.js new file mode 100644 index 0000000..057cd19 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/wrapAsyncGenerator.js @@ -0,0 +1,10 @@ +var AsyncGenerator = require("./AsyncGenerator.js"); + +function _wrapAsyncGenerator(fn) { + return function () { + return new AsyncGenerator(fn.apply(this, arguments)); + }; +} + +module.exports = _wrapAsyncGenerator; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/wrapNativeSuper.js b/node_modules/@babel/runtime/helpers/wrapNativeSuper.js new file mode 100644 index 0000000..981c8dd --- /dev/null +++ b/node_modules/@babel/runtime/helpers/wrapNativeSuper.js @@ -0,0 +1,45 @@ +var getPrototypeOf = require("./getPrototypeOf.js"); + +var setPrototypeOf = require("./setPrototypeOf.js"); + +var isNativeFunction = require("./isNativeFunction.js"); + +var construct = require("./construct.js"); + +function _wrapNativeSuper(Class) { + var _cache = typeof Map === "function" ? new Map() : undefined; + + module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) { + if (Class === null || !isNativeFunction(Class)) return Class; + + if (typeof Class !== "function") { + throw new TypeError("Super expression must either be null or a function"); + } + + if (typeof _cache !== "undefined") { + if (_cache.has(Class)) return _cache.get(Class); + + _cache.set(Class, Wrapper); + } + + function Wrapper() { + return construct(Class, arguments, getPrototypeOf(this).constructor); + } + + Wrapper.prototype = Object.create(Class.prototype, { + constructor: { + value: Wrapper, + enumerable: false, + writable: true, + configurable: true + } + }); + return setPrototypeOf(Wrapper, Class); + }; + + module.exports["default"] = module.exports, module.exports.__esModule = true; + return _wrapNativeSuper(Class); +} + +module.exports = _wrapNativeSuper; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/wrapRegExp.js b/node_modules/@babel/runtime/helpers/wrapRegExp.js new file mode 100644 index 0000000..d977e93 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/wrapRegExp.js @@ -0,0 +1,79 @@ +var _typeof = require("@babel/runtime/helpers/typeof")["default"]; + +var wrapNativeSuper = require("./wrapNativeSuper.js"); + +var getPrototypeOf = require("./getPrototypeOf.js"); + +var possibleConstructorReturn = require("./possibleConstructorReturn.js"); + +var inherits = require("./inherits.js"); + +function _wrapRegExp(re, groups) { + module.exports = _wrapRegExp = function _wrapRegExp(re, groups) { + return new BabelRegExp(re, undefined, groups); + }; + + module.exports["default"] = module.exports, module.exports.__esModule = true; + + var _RegExp = wrapNativeSuper(RegExp); + + var _super = RegExp.prototype; + + var _groups = new WeakMap(); + + function BabelRegExp(re, flags, groups) { + var _this = _RegExp.call(this, re, flags); + + _groups.set(_this, groups || _groups.get(re)); + + return _this; + } + + inherits(BabelRegExp, _RegExp); + + BabelRegExp.prototype.exec = function (str) { + var result = _super.exec.call(this, str); + + if (result) result.groups = buildGroups(result, this); + return result; + }; + + BabelRegExp.prototype[Symbol.replace] = function (str, substitution) { + if (typeof substitution === "string") { + var groups = _groups.get(this); + + return _super[Symbol.replace].call(this, str, substitution.replace(/\$<([^>]+)>/g, function (_, name) { + return "$" + groups[name]; + })); + } else if (typeof substitution === "function") { + var _this = this; + + return _super[Symbol.replace].call(this, str, function () { + var args = []; + args.push.apply(args, arguments); + + if (_typeof(args[args.length - 1]) !== "object") { + args.push(buildGroups(args, _this)); + } + + return substitution.apply(this, args); + }); + } else { + return _super[Symbol.replace].call(this, str, substitution); + } + }; + + function buildGroups(result, re) { + var g = _groups.get(re); + + return Object.keys(g).reduce(function (groups, name) { + groups[name] = result[g[name]]; + return groups; + }, Object.create(null)); + } + + return _wrapRegExp.apply(this, arguments); +} + +module.exports = _wrapRegExp; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/writeOnlyError.js b/node_modules/@babel/runtime/helpers/writeOnlyError.js new file mode 100644 index 0000000..6751a74 --- /dev/null +++ b/node_modules/@babel/runtime/helpers/writeOnlyError.js @@ -0,0 +1,6 @@ +function _writeOnlyError(name) { + throw new TypeError("\"" + name + "\" is write-only"); +} + +module.exports = _writeOnlyError; +module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/package.json b/node_modules/@babel/runtime/package.json new file mode 100644 index 0000000..d0ffc95 --- /dev/null +++ b/node_modules/@babel/runtime/package.json @@ -0,0 +1,853 @@ +{ + "_from": "@babel/runtime@^7.1.2", + "_id": "@babel/runtime@7.13.10", + "_inBundle": false, + "_integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", + "_location": "/@babel/runtime", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "@babel/runtime@^7.1.2", + "name": "@babel/runtime", + "escapedName": "@babel%2fruntime", + "scope": "@babel", + "rawSpec": "^7.1.2", + "saveSpec": null, + "fetchSpec": "^7.1.2" + }, + "_requiredBy": [ + "/history", + "/mini-create-react-context", + "/react-router", + "/react-router-dom" + ], + "_resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", + "_shasum": "47d42a57b6095f4468da440388fdbad8bebf0d7d", + "_spec": "@babel/runtime@^7.1.2", + "_where": "G:\\_comp_\\odsc\\orig\\AllNotes\\node_modules\\react-router-dom", + "author": { + "name": "Sebastian McKenzie", + "email": "sebmck@gmail.com" + }, + "bugs": { + "url": "https://github.com/babel/babel/issues" + }, + "bundleDependencies": false, + "dependencies": { + "regenerator-runtime": "^0.13.4" + }, + "deprecated": false, + "description": "babel's modular runtime helpers", + "exports": { + "./helpers/typeof": [ + { + "node": "./helpers/typeof.js", + "import": "./helpers/esm/typeof.js", + "default": "./helpers/typeof.js" + }, + "./helpers/typeof.js" + ], + "./helpers/esm/typeof": "./helpers/esm/typeof.js", + "./helpers/jsx": [ + { + "node": "./helpers/jsx.js", + "import": "./helpers/esm/jsx.js", + "default": "./helpers/jsx.js" + }, + "./helpers/jsx.js" + ], + "./helpers/esm/jsx": "./helpers/esm/jsx.js", + "./helpers/asyncIterator": [ + { + "node": "./helpers/asyncIterator.js", + "import": "./helpers/esm/asyncIterator.js", + "default": "./helpers/asyncIterator.js" + }, + "./helpers/asyncIterator.js" + ], + "./helpers/esm/asyncIterator": "./helpers/esm/asyncIterator.js", + "./helpers/AwaitValue": [ + { + "node": "./helpers/AwaitValue.js", + "import": "./helpers/esm/AwaitValue.js", + "default": "./helpers/AwaitValue.js" + }, + "./helpers/AwaitValue.js" + ], + "./helpers/esm/AwaitValue": "./helpers/esm/AwaitValue.js", + "./helpers/AsyncGenerator": [ + { + "node": "./helpers/AsyncGenerator.js", + "import": "./helpers/esm/AsyncGenerator.js", + "default": "./helpers/AsyncGenerator.js" + }, + "./helpers/AsyncGenerator.js" + ], + "./helpers/esm/AsyncGenerator": "./helpers/esm/AsyncGenerator.js", + "./helpers/wrapAsyncGenerator": [ + { + "node": "./helpers/wrapAsyncGenerator.js", + "import": "./helpers/esm/wrapAsyncGenerator.js", + "default": "./helpers/wrapAsyncGenerator.js" + }, + "./helpers/wrapAsyncGenerator.js" + ], + "./helpers/esm/wrapAsyncGenerator": "./helpers/esm/wrapAsyncGenerator.js", + "./helpers/awaitAsyncGenerator": [ + { + "node": "./helpers/awaitAsyncGenerator.js", + "import": "./helpers/esm/awaitAsyncGenerator.js", + "default": "./helpers/awaitAsyncGenerator.js" + }, + "./helpers/awaitAsyncGenerator.js" + ], + "./helpers/esm/awaitAsyncGenerator": "./helpers/esm/awaitAsyncGenerator.js", + "./helpers/asyncGeneratorDelegate": [ + { + "node": "./helpers/asyncGeneratorDelegate.js", + "import": "./helpers/esm/asyncGeneratorDelegate.js", + "default": "./helpers/asyncGeneratorDelegate.js" + }, + "./helpers/asyncGeneratorDelegate.js" + ], + "./helpers/esm/asyncGeneratorDelegate": "./helpers/esm/asyncGeneratorDelegate.js", + "./helpers/asyncToGenerator": [ + { + "node": "./helpers/asyncToGenerator.js", + "import": "./helpers/esm/asyncToGenerator.js", + "default": "./helpers/asyncToGenerator.js" + }, + "./helpers/asyncToGenerator.js" + ], + "./helpers/esm/asyncToGenerator": "./helpers/esm/asyncToGenerator.js", + "./helpers/classCallCheck": [ + { + "node": "./helpers/classCallCheck.js", + "import": "./helpers/esm/classCallCheck.js", + "default": "./helpers/classCallCheck.js" + }, + "./helpers/classCallCheck.js" + ], + "./helpers/esm/classCallCheck": "./helpers/esm/classCallCheck.js", + "./helpers/createClass": [ + { + "node": "./helpers/createClass.js", + "import": "./helpers/esm/createClass.js", + "default": "./helpers/createClass.js" + }, + "./helpers/createClass.js" + ], + "./helpers/esm/createClass": "./helpers/esm/createClass.js", + "./helpers/defineEnumerableProperties": [ + { + "node": "./helpers/defineEnumerableProperties.js", + "import": "./helpers/esm/defineEnumerableProperties.js", + "default": "./helpers/defineEnumerableProperties.js" + }, + "./helpers/defineEnumerableProperties.js" + ], + "./helpers/esm/defineEnumerableProperties": "./helpers/esm/defineEnumerableProperties.js", + "./helpers/defaults": [ + { + "node": "./helpers/defaults.js", + "import": "./helpers/esm/defaults.js", + "default": "./helpers/defaults.js" + }, + "./helpers/defaults.js" + ], + "./helpers/esm/defaults": "./helpers/esm/defaults.js", + "./helpers/defineProperty": [ + { + "node": "./helpers/defineProperty.js", + "import": "./helpers/esm/defineProperty.js", + "default": "./helpers/defineProperty.js" + }, + "./helpers/defineProperty.js" + ], + "./helpers/esm/defineProperty": "./helpers/esm/defineProperty.js", + "./helpers/extends": [ + { + "node": "./helpers/extends.js", + "import": "./helpers/esm/extends.js", + "default": "./helpers/extends.js" + }, + "./helpers/extends.js" + ], + "./helpers/esm/extends": "./helpers/esm/extends.js", + "./helpers/objectSpread": [ + { + "node": "./helpers/objectSpread.js", + "import": "./helpers/esm/objectSpread.js", + "default": "./helpers/objectSpread.js" + }, + "./helpers/objectSpread.js" + ], + "./helpers/esm/objectSpread": "./helpers/esm/objectSpread.js", + "./helpers/objectSpread2": [ + { + "node": "./helpers/objectSpread2.js", + "import": "./helpers/esm/objectSpread2.js", + "default": "./helpers/objectSpread2.js" + }, + "./helpers/objectSpread2.js" + ], + "./helpers/esm/objectSpread2": "./helpers/esm/objectSpread2.js", + "./helpers/inherits": [ + { + "node": "./helpers/inherits.js", + "import": "./helpers/esm/inherits.js", + "default": "./helpers/inherits.js" + }, + "./helpers/inherits.js" + ], + "./helpers/esm/inherits": "./helpers/esm/inherits.js", + "./helpers/inheritsLoose": [ + { + "node": "./helpers/inheritsLoose.js", + "import": "./helpers/esm/inheritsLoose.js", + "default": "./helpers/inheritsLoose.js" + }, + "./helpers/inheritsLoose.js" + ], + "./helpers/esm/inheritsLoose": "./helpers/esm/inheritsLoose.js", + "./helpers/getPrototypeOf": [ + { + "node": "./helpers/getPrototypeOf.js", + "import": "./helpers/esm/getPrototypeOf.js", + "default": "./helpers/getPrototypeOf.js" + }, + "./helpers/getPrototypeOf.js" + ], + "./helpers/esm/getPrototypeOf": "./helpers/esm/getPrototypeOf.js", + "./helpers/setPrototypeOf": [ + { + "node": "./helpers/setPrototypeOf.js", + "import": "./helpers/esm/setPrototypeOf.js", + "default": "./helpers/setPrototypeOf.js" + }, + "./helpers/setPrototypeOf.js" + ], + "./helpers/esm/setPrototypeOf": "./helpers/esm/setPrototypeOf.js", + "./helpers/isNativeReflectConstruct": [ + { + "node": "./helpers/isNativeReflectConstruct.js", + "import": "./helpers/esm/isNativeReflectConstruct.js", + "default": "./helpers/isNativeReflectConstruct.js" + }, + "./helpers/isNativeReflectConstruct.js" + ], + "./helpers/esm/isNativeReflectConstruct": "./helpers/esm/isNativeReflectConstruct.js", + "./helpers/construct": [ + { + "node": "./helpers/construct.js", + "import": "./helpers/esm/construct.js", + "default": "./helpers/construct.js" + }, + "./helpers/construct.js" + ], + "./helpers/esm/construct": "./helpers/esm/construct.js", + "./helpers/isNativeFunction": [ + { + "node": "./helpers/isNativeFunction.js", + "import": "./helpers/esm/isNativeFunction.js", + "default": "./helpers/isNativeFunction.js" + }, + "./helpers/isNativeFunction.js" + ], + "./helpers/esm/isNativeFunction": "./helpers/esm/isNativeFunction.js", + "./helpers/wrapNativeSuper": [ + { + "node": "./helpers/wrapNativeSuper.js", + "import": "./helpers/esm/wrapNativeSuper.js", + "default": "./helpers/wrapNativeSuper.js" + }, + "./helpers/wrapNativeSuper.js" + ], + "./helpers/esm/wrapNativeSuper": "./helpers/esm/wrapNativeSuper.js", + "./helpers/instanceof": [ + { + "node": "./helpers/instanceof.js", + "import": "./helpers/esm/instanceof.js", + "default": "./helpers/instanceof.js" + }, + "./helpers/instanceof.js" + ], + "./helpers/esm/instanceof": "./helpers/esm/instanceof.js", + "./helpers/interopRequireDefault": [ + { + "node": "./helpers/interopRequireDefault.js", + "import": "./helpers/esm/interopRequireDefault.js", + "default": "./helpers/interopRequireDefault.js" + }, + "./helpers/interopRequireDefault.js" + ], + "./helpers/esm/interopRequireDefault": "./helpers/esm/interopRequireDefault.js", + "./helpers/interopRequireWildcard": [ + { + "node": "./helpers/interopRequireWildcard.js", + "import": "./helpers/esm/interopRequireWildcard.js", + "default": "./helpers/interopRequireWildcard.js" + }, + "./helpers/interopRequireWildcard.js" + ], + "./helpers/esm/interopRequireWildcard": "./helpers/esm/interopRequireWildcard.js", + "./helpers/newArrowCheck": [ + { + "node": "./helpers/newArrowCheck.js", + "import": "./helpers/esm/newArrowCheck.js", + "default": "./helpers/newArrowCheck.js" + }, + "./helpers/newArrowCheck.js" + ], + "./helpers/esm/newArrowCheck": "./helpers/esm/newArrowCheck.js", + "./helpers/objectDestructuringEmpty": [ + { + "node": "./helpers/objectDestructuringEmpty.js", + "import": "./helpers/esm/objectDestructuringEmpty.js", + "default": "./helpers/objectDestructuringEmpty.js" + }, + "./helpers/objectDestructuringEmpty.js" + ], + "./helpers/esm/objectDestructuringEmpty": "./helpers/esm/objectDestructuringEmpty.js", + "./helpers/objectWithoutPropertiesLoose": [ + { + "node": "./helpers/objectWithoutPropertiesLoose.js", + "import": "./helpers/esm/objectWithoutPropertiesLoose.js", + "default": "./helpers/objectWithoutPropertiesLoose.js" + }, + "./helpers/objectWithoutPropertiesLoose.js" + ], + "./helpers/esm/objectWithoutPropertiesLoose": "./helpers/esm/objectWithoutPropertiesLoose.js", + "./helpers/objectWithoutProperties": [ + { + "node": "./helpers/objectWithoutProperties.js", + "import": "./helpers/esm/objectWithoutProperties.js", + "default": "./helpers/objectWithoutProperties.js" + }, + "./helpers/objectWithoutProperties.js" + ], + "./helpers/esm/objectWithoutProperties": "./helpers/esm/objectWithoutProperties.js", + "./helpers/assertThisInitialized": [ + { + "node": "./helpers/assertThisInitialized.js", + "import": "./helpers/esm/assertThisInitialized.js", + "default": "./helpers/assertThisInitialized.js" + }, + "./helpers/assertThisInitialized.js" + ], + "./helpers/esm/assertThisInitialized": "./helpers/esm/assertThisInitialized.js", + "./helpers/possibleConstructorReturn": [ + { + "node": "./helpers/possibleConstructorReturn.js", + "import": "./helpers/esm/possibleConstructorReturn.js", + "default": "./helpers/possibleConstructorReturn.js" + }, + "./helpers/possibleConstructorReturn.js" + ], + "./helpers/esm/possibleConstructorReturn": "./helpers/esm/possibleConstructorReturn.js", + "./helpers/createSuper": [ + { + "node": "./helpers/createSuper.js", + "import": "./helpers/esm/createSuper.js", + "default": "./helpers/createSuper.js" + }, + "./helpers/createSuper.js" + ], + "./helpers/esm/createSuper": "./helpers/esm/createSuper.js", + "./helpers/superPropBase": [ + { + "node": "./helpers/superPropBase.js", + "import": "./helpers/esm/superPropBase.js", + "default": "./helpers/superPropBase.js" + }, + "./helpers/superPropBase.js" + ], + "./helpers/esm/superPropBase": "./helpers/esm/superPropBase.js", + "./helpers/get": [ + { + "node": "./helpers/get.js", + "import": "./helpers/esm/get.js", + "default": "./helpers/get.js" + }, + "./helpers/get.js" + ], + "./helpers/esm/get": "./helpers/esm/get.js", + "./helpers/set": [ + { + "node": "./helpers/set.js", + "import": "./helpers/esm/set.js", + "default": "./helpers/set.js" + }, + "./helpers/set.js" + ], + "./helpers/esm/set": "./helpers/esm/set.js", + "./helpers/taggedTemplateLiteral": [ + { + "node": "./helpers/taggedTemplateLiteral.js", + "import": "./helpers/esm/taggedTemplateLiteral.js", + "default": "./helpers/taggedTemplateLiteral.js" + }, + "./helpers/taggedTemplateLiteral.js" + ], + "./helpers/esm/taggedTemplateLiteral": "./helpers/esm/taggedTemplateLiteral.js", + "./helpers/taggedTemplateLiteralLoose": [ + { + "node": "./helpers/taggedTemplateLiteralLoose.js", + "import": "./helpers/esm/taggedTemplateLiteralLoose.js", + "default": "./helpers/taggedTemplateLiteralLoose.js" + }, + "./helpers/taggedTemplateLiteralLoose.js" + ], + "./helpers/esm/taggedTemplateLiteralLoose": "./helpers/esm/taggedTemplateLiteralLoose.js", + "./helpers/readOnlyError": [ + { + "node": "./helpers/readOnlyError.js", + "import": "./helpers/esm/readOnlyError.js", + "default": "./helpers/readOnlyError.js" + }, + "./helpers/readOnlyError.js" + ], + "./helpers/esm/readOnlyError": "./helpers/esm/readOnlyError.js", + "./helpers/writeOnlyError": [ + { + "node": "./helpers/writeOnlyError.js", + "import": "./helpers/esm/writeOnlyError.js", + "default": "./helpers/writeOnlyError.js" + }, + "./helpers/writeOnlyError.js" + ], + "./helpers/esm/writeOnlyError": "./helpers/esm/writeOnlyError.js", + "./helpers/classNameTDZError": [ + { + "node": "./helpers/classNameTDZError.js", + "import": "./helpers/esm/classNameTDZError.js", + "default": "./helpers/classNameTDZError.js" + }, + "./helpers/classNameTDZError.js" + ], + "./helpers/esm/classNameTDZError": "./helpers/esm/classNameTDZError.js", + "./helpers/temporalUndefined": [ + { + "node": "./helpers/temporalUndefined.js", + "import": "./helpers/esm/temporalUndefined.js", + "default": "./helpers/temporalUndefined.js" + }, + "./helpers/temporalUndefined.js" + ], + "./helpers/esm/temporalUndefined": "./helpers/esm/temporalUndefined.js", + "./helpers/tdz": [ + { + "node": "./helpers/tdz.js", + "import": "./helpers/esm/tdz.js", + "default": "./helpers/tdz.js" + }, + "./helpers/tdz.js" + ], + "./helpers/esm/tdz": "./helpers/esm/tdz.js", + "./helpers/temporalRef": [ + { + "node": "./helpers/temporalRef.js", + "import": "./helpers/esm/temporalRef.js", + "default": "./helpers/temporalRef.js" + }, + "./helpers/temporalRef.js" + ], + "./helpers/esm/temporalRef": "./helpers/esm/temporalRef.js", + "./helpers/slicedToArray": [ + { + "node": "./helpers/slicedToArray.js", + "import": "./helpers/esm/slicedToArray.js", + "default": "./helpers/slicedToArray.js" + }, + "./helpers/slicedToArray.js" + ], + "./helpers/esm/slicedToArray": "./helpers/esm/slicedToArray.js", + "./helpers/slicedToArrayLoose": [ + { + "node": "./helpers/slicedToArrayLoose.js", + "import": "./helpers/esm/slicedToArrayLoose.js", + "default": "./helpers/slicedToArrayLoose.js" + }, + "./helpers/slicedToArrayLoose.js" + ], + "./helpers/esm/slicedToArrayLoose": "./helpers/esm/slicedToArrayLoose.js", + "./helpers/toArray": [ + { + "node": "./helpers/toArray.js", + "import": "./helpers/esm/toArray.js", + "default": "./helpers/toArray.js" + }, + "./helpers/toArray.js" + ], + "./helpers/esm/toArray": "./helpers/esm/toArray.js", + "./helpers/toConsumableArray": [ + { + "node": "./helpers/toConsumableArray.js", + "import": "./helpers/esm/toConsumableArray.js", + "default": "./helpers/toConsumableArray.js" + }, + "./helpers/toConsumableArray.js" + ], + "./helpers/esm/toConsumableArray": "./helpers/esm/toConsumableArray.js", + "./helpers/arrayWithoutHoles": [ + { + "node": "./helpers/arrayWithoutHoles.js", + "import": "./helpers/esm/arrayWithoutHoles.js", + "default": "./helpers/arrayWithoutHoles.js" + }, + "./helpers/arrayWithoutHoles.js" + ], + "./helpers/esm/arrayWithoutHoles": "./helpers/esm/arrayWithoutHoles.js", + "./helpers/arrayWithHoles": [ + { + "node": "./helpers/arrayWithHoles.js", + "import": "./helpers/esm/arrayWithHoles.js", + "default": "./helpers/arrayWithHoles.js" + }, + "./helpers/arrayWithHoles.js" + ], + "./helpers/esm/arrayWithHoles": "./helpers/esm/arrayWithHoles.js", + "./helpers/maybeArrayLike": [ + { + "node": "./helpers/maybeArrayLike.js", + "import": "./helpers/esm/maybeArrayLike.js", + "default": "./helpers/maybeArrayLike.js" + }, + "./helpers/maybeArrayLike.js" + ], + "./helpers/esm/maybeArrayLike": "./helpers/esm/maybeArrayLike.js", + "./helpers/iterableToArray": [ + { + "node": "./helpers/iterableToArray.js", + "import": "./helpers/esm/iterableToArray.js", + "default": "./helpers/iterableToArray.js" + }, + "./helpers/iterableToArray.js" + ], + "./helpers/esm/iterableToArray": "./helpers/esm/iterableToArray.js", + "./helpers/iterableToArrayLimit": [ + { + "node": "./helpers/iterableToArrayLimit.js", + "import": "./helpers/esm/iterableToArrayLimit.js", + "default": "./helpers/iterableToArrayLimit.js" + }, + "./helpers/iterableToArrayLimit.js" + ], + "./helpers/esm/iterableToArrayLimit": "./helpers/esm/iterableToArrayLimit.js", + "./helpers/iterableToArrayLimitLoose": [ + { + "node": "./helpers/iterableToArrayLimitLoose.js", + "import": "./helpers/esm/iterableToArrayLimitLoose.js", + "default": "./helpers/iterableToArrayLimitLoose.js" + }, + "./helpers/iterableToArrayLimitLoose.js" + ], + "./helpers/esm/iterableToArrayLimitLoose": "./helpers/esm/iterableToArrayLimitLoose.js", + "./helpers/unsupportedIterableToArray": [ + { + "node": "./helpers/unsupportedIterableToArray.js", + "import": "./helpers/esm/unsupportedIterableToArray.js", + "default": "./helpers/unsupportedIterableToArray.js" + }, + "./helpers/unsupportedIterableToArray.js" + ], + "./helpers/esm/unsupportedIterableToArray": "./helpers/esm/unsupportedIterableToArray.js", + "./helpers/arrayLikeToArray": [ + { + "node": "./helpers/arrayLikeToArray.js", + "import": "./helpers/esm/arrayLikeToArray.js", + "default": "./helpers/arrayLikeToArray.js" + }, + "./helpers/arrayLikeToArray.js" + ], + "./helpers/esm/arrayLikeToArray": "./helpers/esm/arrayLikeToArray.js", + "./helpers/nonIterableSpread": [ + { + "node": "./helpers/nonIterableSpread.js", + "import": "./helpers/esm/nonIterableSpread.js", + "default": "./helpers/nonIterableSpread.js" + }, + "./helpers/nonIterableSpread.js" + ], + "./helpers/esm/nonIterableSpread": "./helpers/esm/nonIterableSpread.js", + "./helpers/nonIterableRest": [ + { + "node": "./helpers/nonIterableRest.js", + "import": "./helpers/esm/nonIterableRest.js", + "default": "./helpers/nonIterableRest.js" + }, + "./helpers/nonIterableRest.js" + ], + "./helpers/esm/nonIterableRest": "./helpers/esm/nonIterableRest.js", + "./helpers/createForOfIteratorHelper": [ + { + "node": "./helpers/createForOfIteratorHelper.js", + "import": "./helpers/esm/createForOfIteratorHelper.js", + "default": "./helpers/createForOfIteratorHelper.js" + }, + "./helpers/createForOfIteratorHelper.js" + ], + "./helpers/esm/createForOfIteratorHelper": "./helpers/esm/createForOfIteratorHelper.js", + "./helpers/createForOfIteratorHelperLoose": [ + { + "node": "./helpers/createForOfIteratorHelperLoose.js", + "import": "./helpers/esm/createForOfIteratorHelperLoose.js", + "default": "./helpers/createForOfIteratorHelperLoose.js" + }, + "./helpers/createForOfIteratorHelperLoose.js" + ], + "./helpers/esm/createForOfIteratorHelperLoose": "./helpers/esm/createForOfIteratorHelperLoose.js", + "./helpers/skipFirstGeneratorNext": [ + { + "node": "./helpers/skipFirstGeneratorNext.js", + "import": "./helpers/esm/skipFirstGeneratorNext.js", + "default": "./helpers/skipFirstGeneratorNext.js" + }, + "./helpers/skipFirstGeneratorNext.js" + ], + "./helpers/esm/skipFirstGeneratorNext": "./helpers/esm/skipFirstGeneratorNext.js", + "./helpers/toPrimitive": [ + { + "node": "./helpers/toPrimitive.js", + "import": "./helpers/esm/toPrimitive.js", + "default": "./helpers/toPrimitive.js" + }, + "./helpers/toPrimitive.js" + ], + "./helpers/esm/toPrimitive": "./helpers/esm/toPrimitive.js", + "./helpers/toPropertyKey": [ + { + "node": "./helpers/toPropertyKey.js", + "import": "./helpers/esm/toPropertyKey.js", + "default": "./helpers/toPropertyKey.js" + }, + "./helpers/toPropertyKey.js" + ], + "./helpers/esm/toPropertyKey": "./helpers/esm/toPropertyKey.js", + "./helpers/initializerWarningHelper": [ + { + "node": "./helpers/initializerWarningHelper.js", + "import": "./helpers/esm/initializerWarningHelper.js", + "default": "./helpers/initializerWarningHelper.js" + }, + "./helpers/initializerWarningHelper.js" + ], + "./helpers/esm/initializerWarningHelper": "./helpers/esm/initializerWarningHelper.js", + "./helpers/initializerDefineProperty": [ + { + "node": "./helpers/initializerDefineProperty.js", + "import": "./helpers/esm/initializerDefineProperty.js", + "default": "./helpers/initializerDefineProperty.js" + }, + "./helpers/initializerDefineProperty.js" + ], + "./helpers/esm/initializerDefineProperty": "./helpers/esm/initializerDefineProperty.js", + "./helpers/applyDecoratedDescriptor": [ + { + "node": "./helpers/applyDecoratedDescriptor.js", + "import": "./helpers/esm/applyDecoratedDescriptor.js", + "default": "./helpers/applyDecoratedDescriptor.js" + }, + "./helpers/applyDecoratedDescriptor.js" + ], + "./helpers/esm/applyDecoratedDescriptor": "./helpers/esm/applyDecoratedDescriptor.js", + "./helpers/classPrivateFieldLooseKey": [ + { + "node": "./helpers/classPrivateFieldLooseKey.js", + "import": "./helpers/esm/classPrivateFieldLooseKey.js", + "default": "./helpers/classPrivateFieldLooseKey.js" + }, + "./helpers/classPrivateFieldLooseKey.js" + ], + "./helpers/esm/classPrivateFieldLooseKey": "./helpers/esm/classPrivateFieldLooseKey.js", + "./helpers/classPrivateFieldLooseBase": [ + { + "node": "./helpers/classPrivateFieldLooseBase.js", + "import": "./helpers/esm/classPrivateFieldLooseBase.js", + "default": "./helpers/classPrivateFieldLooseBase.js" + }, + "./helpers/classPrivateFieldLooseBase.js" + ], + "./helpers/esm/classPrivateFieldLooseBase": "./helpers/esm/classPrivateFieldLooseBase.js", + "./helpers/classPrivateFieldGet": [ + { + "node": "./helpers/classPrivateFieldGet.js", + "import": "./helpers/esm/classPrivateFieldGet.js", + "default": "./helpers/classPrivateFieldGet.js" + }, + "./helpers/classPrivateFieldGet.js" + ], + "./helpers/esm/classPrivateFieldGet": "./helpers/esm/classPrivateFieldGet.js", + "./helpers/classPrivateFieldSet": [ + { + "node": "./helpers/classPrivateFieldSet.js", + "import": "./helpers/esm/classPrivateFieldSet.js", + "default": "./helpers/classPrivateFieldSet.js" + }, + "./helpers/classPrivateFieldSet.js" + ], + "./helpers/esm/classPrivateFieldSet": "./helpers/esm/classPrivateFieldSet.js", + "./helpers/classPrivateFieldDestructureSet": [ + { + "node": "./helpers/classPrivateFieldDestructureSet.js", + "import": "./helpers/esm/classPrivateFieldDestructureSet.js", + "default": "./helpers/classPrivateFieldDestructureSet.js" + }, + "./helpers/classPrivateFieldDestructureSet.js" + ], + "./helpers/esm/classPrivateFieldDestructureSet": "./helpers/esm/classPrivateFieldDestructureSet.js", + "./helpers/classExtractFieldDescriptor": [ + { + "node": "./helpers/classExtractFieldDescriptor.js", + "import": "./helpers/esm/classExtractFieldDescriptor.js", + "default": "./helpers/classExtractFieldDescriptor.js" + }, + "./helpers/classExtractFieldDescriptor.js" + ], + "./helpers/esm/classExtractFieldDescriptor": "./helpers/esm/classExtractFieldDescriptor.js", + "./helpers/classStaticPrivateFieldSpecGet": [ + { + "node": "./helpers/classStaticPrivateFieldSpecGet.js", + "import": "./helpers/esm/classStaticPrivateFieldSpecGet.js", + "default": "./helpers/classStaticPrivateFieldSpecGet.js" + }, + "./helpers/classStaticPrivateFieldSpecGet.js" + ], + "./helpers/esm/classStaticPrivateFieldSpecGet": "./helpers/esm/classStaticPrivateFieldSpecGet.js", + "./helpers/classStaticPrivateFieldSpecSet": [ + { + "node": "./helpers/classStaticPrivateFieldSpecSet.js", + "import": "./helpers/esm/classStaticPrivateFieldSpecSet.js", + "default": "./helpers/classStaticPrivateFieldSpecSet.js" + }, + "./helpers/classStaticPrivateFieldSpecSet.js" + ], + "./helpers/esm/classStaticPrivateFieldSpecSet": "./helpers/esm/classStaticPrivateFieldSpecSet.js", + "./helpers/classStaticPrivateMethodGet": [ + { + "node": "./helpers/classStaticPrivateMethodGet.js", + "import": "./helpers/esm/classStaticPrivateMethodGet.js", + "default": "./helpers/classStaticPrivateMethodGet.js" + }, + "./helpers/classStaticPrivateMethodGet.js" + ], + "./helpers/esm/classStaticPrivateMethodGet": "./helpers/esm/classStaticPrivateMethodGet.js", + "./helpers/classStaticPrivateMethodSet": [ + { + "node": "./helpers/classStaticPrivateMethodSet.js", + "import": "./helpers/esm/classStaticPrivateMethodSet.js", + "default": "./helpers/classStaticPrivateMethodSet.js" + }, + "./helpers/classStaticPrivateMethodSet.js" + ], + "./helpers/esm/classStaticPrivateMethodSet": "./helpers/esm/classStaticPrivateMethodSet.js", + "./helpers/classApplyDescriptorGet": [ + { + "node": "./helpers/classApplyDescriptorGet.js", + "import": "./helpers/esm/classApplyDescriptorGet.js", + "default": "./helpers/classApplyDescriptorGet.js" + }, + "./helpers/classApplyDescriptorGet.js" + ], + "./helpers/esm/classApplyDescriptorGet": "./helpers/esm/classApplyDescriptorGet.js", + "./helpers/classApplyDescriptorSet": [ + { + "node": "./helpers/classApplyDescriptorSet.js", + "import": "./helpers/esm/classApplyDescriptorSet.js", + "default": "./helpers/classApplyDescriptorSet.js" + }, + "./helpers/classApplyDescriptorSet.js" + ], + "./helpers/esm/classApplyDescriptorSet": "./helpers/esm/classApplyDescriptorSet.js", + "./helpers/classApplyDescriptorDestructureSet": [ + { + "node": "./helpers/classApplyDescriptorDestructureSet.js", + "import": "./helpers/esm/classApplyDescriptorDestructureSet.js", + "default": "./helpers/classApplyDescriptorDestructureSet.js" + }, + "./helpers/classApplyDescriptorDestructureSet.js" + ], + "./helpers/esm/classApplyDescriptorDestructureSet": "./helpers/esm/classApplyDescriptorDestructureSet.js", + "./helpers/classStaticPrivateFieldDestructureSet": [ + { + "node": "./helpers/classStaticPrivateFieldDestructureSet.js", + "import": "./helpers/esm/classStaticPrivateFieldDestructureSet.js", + "default": "./helpers/classStaticPrivateFieldDestructureSet.js" + }, + "./helpers/classStaticPrivateFieldDestructureSet.js" + ], + "./helpers/esm/classStaticPrivateFieldDestructureSet": "./helpers/esm/classStaticPrivateFieldDestructureSet.js", + "./helpers/classCheckPrivateStaticAccess": [ + { + "node": "./helpers/classCheckPrivateStaticAccess.js", + "import": "./helpers/esm/classCheckPrivateStaticAccess.js", + "default": "./helpers/classCheckPrivateStaticAccess.js" + }, + "./helpers/classCheckPrivateStaticAccess.js" + ], + "./helpers/esm/classCheckPrivateStaticAccess": "./helpers/esm/classCheckPrivateStaticAccess.js", + "./helpers/classCheckPrivateStaticFieldDescriptor": [ + { + "node": "./helpers/classCheckPrivateStaticFieldDescriptor.js", + "import": "./helpers/esm/classCheckPrivateStaticFieldDescriptor.js", + "default": "./helpers/classCheckPrivateStaticFieldDescriptor.js" + }, + "./helpers/classCheckPrivateStaticFieldDescriptor.js" + ], + "./helpers/esm/classCheckPrivateStaticFieldDescriptor": "./helpers/esm/classCheckPrivateStaticFieldDescriptor.js", + "./helpers/decorate": [ + { + "node": "./helpers/decorate.js", + "import": "./helpers/esm/decorate.js", + "default": "./helpers/decorate.js" + }, + "./helpers/decorate.js" + ], + "./helpers/esm/decorate": "./helpers/esm/decorate.js", + "./helpers/classPrivateMethodGet": [ + { + "node": "./helpers/classPrivateMethodGet.js", + "import": "./helpers/esm/classPrivateMethodGet.js", + "default": "./helpers/classPrivateMethodGet.js" + }, + "./helpers/classPrivateMethodGet.js" + ], + "./helpers/esm/classPrivateMethodGet": "./helpers/esm/classPrivateMethodGet.js", + "./helpers/classPrivateMethodSet": [ + { + "node": "./helpers/classPrivateMethodSet.js", + "import": "./helpers/esm/classPrivateMethodSet.js", + "default": "./helpers/classPrivateMethodSet.js" + }, + "./helpers/classPrivateMethodSet.js" + ], + "./helpers/esm/classPrivateMethodSet": "./helpers/esm/classPrivateMethodSet.js", + "./helpers/wrapRegExp": [ + { + "node": "./helpers/wrapRegExp.js", + "import": "./helpers/esm/wrapRegExp.js", + "default": "./helpers/wrapRegExp.js" + }, + "./helpers/wrapRegExp.js" + ], + "./helpers/esm/wrapRegExp": "./helpers/esm/wrapRegExp.js", + "./package": "./package.json", + "./package.json": "./package.json", + "./regenerator": "./regenerator/index.js", + "./regenerator/*.js": "./regenerator/*.js", + "./regenerator/": "./regenerator/" + }, + "homepage": "https://babel.dev/docs/en/next/babel-runtime", + "license": "MIT", + "name": "@babel/runtime", + "publishConfig": { + "access": "public" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/babel/babel.git", + "directory": "packages/babel-runtime" + }, + "version": "7.13.10" +} diff --git a/node_modules/@babel/runtime/regenerator/index.js b/node_modules/@babel/runtime/regenerator/index.js new file mode 100644 index 0000000..9fd4158 --- /dev/null +++ b/node_modules/@babel/runtime/regenerator/index.js @@ -0,0 +1 @@ +module.exports = require("regenerator-runtime"); diff --git a/node_modules/history/DOMUtils.js b/node_modules/history/DOMUtils.js new file mode 100644 index 0000000..c4f93d3 --- /dev/null +++ b/node_modules/history/DOMUtils.js @@ -0,0 +1,3 @@ +'use strict'; +require('./warnAboutDeprecatedCJSRequire.js')('DOMUtils'); +module.exports = require('./index.js').DOMUtils; diff --git a/node_modules/history/ExecutionEnvironment.js b/node_modules/history/ExecutionEnvironment.js new file mode 100644 index 0000000..44de3b2 --- /dev/null +++ b/node_modules/history/ExecutionEnvironment.js @@ -0,0 +1,3 @@ +'use strict'; +require('./warnAboutDeprecatedCJSRequire.js')('ExecutionEnvironment'); +module.exports = require('./index.js').ExecutionEnvironment; diff --git a/node_modules/history/LICENSE b/node_modules/history/LICENSE new file mode 100644 index 0000000..dc15fe3 --- /dev/null +++ b/node_modules/history/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) React Training 2016-2018 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/history/LocationUtils.js b/node_modules/history/LocationUtils.js new file mode 100644 index 0000000..a861205 --- /dev/null +++ b/node_modules/history/LocationUtils.js @@ -0,0 +1,3 @@ +'use strict'; +require('./warnAboutDeprecatedCJSRequire.js')('LocationUtils'); +module.exports = require('./index.js').LocationUtils; diff --git a/node_modules/history/PathUtils.js b/node_modules/history/PathUtils.js new file mode 100644 index 0000000..7dc98c2 --- /dev/null +++ b/node_modules/history/PathUtils.js @@ -0,0 +1,3 @@ +'use strict'; +require('./warnAboutDeprecatedCJSRequire.js')('PathUtils'); +module.exports = require('./index.js').PathUtils; diff --git a/node_modules/history/README.md b/node_modules/history/README.md new file mode 100644 index 0000000..bfa8554 --- /dev/null +++ b/node_modules/history/README.md @@ -0,0 +1,38 @@ +# history · [![npm package][npm-badge]][npm] [![Travis][build-badge]][build] + +[npm-badge]: https://img.shields.io/npm/v/history.svg?style=flat-square +[npm]: https://www.npmjs.org/package/history +[build-badge]: https://img.shields.io/travis/ReactTraining/history/master.svg?style=flat-square +[build]: https://travis-ci.org/ReactTraining/history + +The history library lets you easily manage session history anywhere JavaScript runs. `history` abstracts away the differences in various environments and provides a minimal API that lets you manage the history stack, navigate, and persist state between sessions. + +## Documentation + +Documentation for the current branch can be found in the [docs](docs) directory. + +## Changes + +To see the changes that were made in a given release, please lookup the tag on [the releases page](https://github.com/ReactTraining/history/releases). + +For changes released in version 4.6.3 and earlier, please see [the `CHANGES.md` file](https://github.com/ReactTraining/history/blob/845d690c5576c7f55ecbe14babe0092e8e5bc2bb/CHANGES.md). + +## Development + +Development of the current stable release, version 4, happens on [the `master` branch](https://github.com/ReactTraining/history/tree/master). Please keep in mind that this branch may include some work that has not yet been published as part of an official release. However, since `master` is always stable, you should feel free to build your own working release straight from master at any time. + +Development of the next major release, version 5, happens on [the `dev` branch](https://github.com/ReactTraining/history/tree/dev). + +If you're interested in helping out, please read [our contributing guidelines](CONTRIBUTING.md). + +## About + +`history` is developed and maintained by [React Training](https://reacttraining.com). If +you're interested in learning more about what React can do for your company, please +[get in touch](mailto:hello@reacttraining.com)! + +## Thanks + +A big thank-you to [BrowserStack](https://www.browserstack.com/) for providing the infrastructure that allows us to run our build in real browsers. + +Also, thanks to [Dan Shaw](https://www.npmjs.com/~dshaw) for letting us use the `history` npm package name. Thanks, Dan! diff --git a/node_modules/history/cjs/history.js b/node_modules/history/cjs/history.js new file mode 100644 index 0000000..fcd8eba --- /dev/null +++ b/node_modules/history/cjs/history.js @@ -0,0 +1,948 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var resolvePathname = _interopDefault(require('resolve-pathname')); +var valueEqual = _interopDefault(require('value-equal')); +var warning = _interopDefault(require('tiny-warning')); +var invariant = _interopDefault(require('tiny-invariant')); + +function _extends() { + _extends = Object.assign || function (target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + + return target; + }; + + return _extends.apply(this, arguments); +} + +function addLeadingSlash(path) { + return path.charAt(0) === '/' ? path : '/' + path; +} +function stripLeadingSlash(path) { + return path.charAt(0) === '/' ? path.substr(1) : path; +} +function hasBasename(path, prefix) { + return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1; +} +function stripBasename(path, prefix) { + return hasBasename(path, prefix) ? path.substr(prefix.length) : path; +} +function stripTrailingSlash(path) { + return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path; +} +function parsePath(path) { + var pathname = path || '/'; + var search = ''; + var hash = ''; + var hashIndex = pathname.indexOf('#'); + + if (hashIndex !== -1) { + hash = pathname.substr(hashIndex); + pathname = pathname.substr(0, hashIndex); + } + + var searchIndex = pathname.indexOf('?'); + + if (searchIndex !== -1) { + search = pathname.substr(searchIndex); + pathname = pathname.substr(0, searchIndex); + } + + return { + pathname: pathname, + search: search === '?' ? '' : search, + hash: hash === '#' ? '' : hash + }; +} +function createPath(location) { + var pathname = location.pathname, + search = location.search, + hash = location.hash; + var path = pathname || '/'; + if (search && search !== '?') path += search.charAt(0) === '?' ? search : "?" + search; + if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : "#" + hash; + return path; +} + +function createLocation(path, state, key, currentLocation) { + var location; + + if (typeof path === 'string') { + // Two-arg form: push(path, state) + location = parsePath(path); + location.state = state; + } else { + // One-arg form: push(location) + location = _extends({}, path); + if (location.pathname === undefined) location.pathname = ''; + + if (location.search) { + if (location.search.charAt(0) !== '?') location.search = '?' + location.search; + } else { + location.search = ''; + } + + if (location.hash) { + if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash; + } else { + location.hash = ''; + } + + if (state !== undefined && location.state === undefined) location.state = state; + } + + try { + location.pathname = decodeURI(location.pathname); + } catch (e) { + if (e instanceof URIError) { + throw new URIError('Pathname "' + location.pathname + '" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.'); + } else { + throw e; + } + } + + if (key) location.key = key; + + if (currentLocation) { + // Resolve incomplete/relative pathname relative to current location. + if (!location.pathname) { + location.pathname = currentLocation.pathname; + } else if (location.pathname.charAt(0) !== '/') { + location.pathname = resolvePathname(location.pathname, currentLocation.pathname); + } + } else { + // When there is no prior location and pathname is empty, set it to / + if (!location.pathname) { + location.pathname = '/'; + } + } + + return location; +} +function locationsAreEqual(a, b) { + return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state); +} + +function createTransitionManager() { + var prompt = null; + + function setPrompt(nextPrompt) { + warning(prompt == null, 'A history supports only one prompt at a time'); + prompt = nextPrompt; + return function () { + if (prompt === nextPrompt) prompt = null; + }; + } + + function confirmTransitionTo(location, action, getUserConfirmation, callback) { + // TODO: If another transition starts while we're still confirming + // the previous one, we may end up in a weird state. Figure out the + // best way to handle this. + if (prompt != null) { + var result = typeof prompt === 'function' ? prompt(location, action) : prompt; + + if (typeof result === 'string') { + if (typeof getUserConfirmation === 'function') { + getUserConfirmation(result, callback); + } else { + warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message'); + callback(true); + } + } else { + // Return false from a transition hook to cancel the transition. + callback(result !== false); + } + } else { + callback(true); + } + } + + var listeners = []; + + function appendListener(fn) { + var isActive = true; + + function listener() { + if (isActive) fn.apply(void 0, arguments); + } + + listeners.push(listener); + return function () { + isActive = false; + listeners = listeners.filter(function (item) { + return item !== listener; + }); + }; + } + + function notifyListeners() { + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + listeners.forEach(function (listener) { + return listener.apply(void 0, args); + }); + } + + return { + setPrompt: setPrompt, + confirmTransitionTo: confirmTransitionTo, + appendListener: appendListener, + notifyListeners: notifyListeners + }; +} + +var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement); +function getConfirmation(message, callback) { + callback(window.confirm(message)); // eslint-disable-line no-alert +} +/** + * Returns true if the HTML5 history API is supported. Taken from Modernizr. + * + * https://github.com/Modernizr/Modernizr/blob/master/LICENSE + * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js + * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586 + */ + +function supportsHistory() { + var ua = window.navigator.userAgent; + if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false; + return window.history && 'pushState' in window.history; +} +/** + * Returns true if browser fires popstate on hash change. + * IE10 and IE11 do not. + */ + +function supportsPopStateOnHashChange() { + return window.navigator.userAgent.indexOf('Trident') === -1; +} +/** + * Returns false if using go(n) with hash history causes a full page reload. + */ + +function supportsGoWithoutReloadUsingHash() { + return window.navigator.userAgent.indexOf('Firefox') === -1; +} +/** + * Returns true if a given popstate event is an extraneous WebKit event. + * Accounts for the fact that Chrome on iOS fires real popstate events + * containing undefined state when pressing the back button. + */ + +function isExtraneousPopstateEvent(event) { + return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1; +} + +var PopStateEvent = 'popstate'; +var HashChangeEvent = 'hashchange'; + +function getHistoryState() { + try { + return window.history.state || {}; + } catch (e) { + // IE 11 sometimes throws when accessing window.history.state + // See https://github.com/ReactTraining/history/pull/289 + return {}; + } +} +/** + * Creates a history object that uses the HTML5 history API including + * pushState, replaceState, and the popstate event. + */ + + +function createBrowserHistory(props) { + if (props === void 0) { + props = {}; + } + + !canUseDOM ? invariant(false, 'Browser history needs a DOM') : void 0; + var globalHistory = window.history; + var canUseHistory = supportsHistory(); + var needsHashChangeListener = !supportsPopStateOnHashChange(); + var _props = props, + _props$forceRefresh = _props.forceRefresh, + forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh, + _props$getUserConfirm = _props.getUserConfirmation, + getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm, + _props$keyLength = _props.keyLength, + keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength; + var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : ''; + + function getDOMLocation(historyState) { + var _ref = historyState || {}, + key = _ref.key, + state = _ref.state; + + var _window$location = window.location, + pathname = _window$location.pathname, + search = _window$location.search, + hash = _window$location.hash; + var path = pathname + search + hash; + warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path "' + path + '" to begin with "' + basename + '".'); + if (basename) path = stripBasename(path, basename); + return createLocation(path, state, key); + } + + function createKey() { + return Math.random().toString(36).substr(2, keyLength); + } + + var transitionManager = createTransitionManager(); + + function setState(nextState) { + _extends(history, nextState); + + history.length = globalHistory.length; + transitionManager.notifyListeners(history.location, history.action); + } + + function handlePopState(event) { + // Ignore extraneous popstate events in WebKit. + if (isExtraneousPopstateEvent(event)) return; + handlePop(getDOMLocation(event.state)); + } + + function handleHashChange() { + handlePop(getDOMLocation(getHistoryState())); + } + + var forceNextPop = false; + + function handlePop(location) { + if (forceNextPop) { + forceNextPop = false; + setState(); + } else { + var action = 'POP'; + transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { + if (ok) { + setState({ + action: action, + location: location + }); + } else { + revertPop(location); + } + }); + } + } + + function revertPop(fromLocation) { + var toLocation = history.location; // TODO: We could probably make this more reliable by + // keeping a list of keys we've seen in sessionStorage. + // Instead, we just default to 0 for keys we don't know. + + var toIndex = allKeys.indexOf(toLocation.key); + if (toIndex === -1) toIndex = 0; + var fromIndex = allKeys.indexOf(fromLocation.key); + if (fromIndex === -1) fromIndex = 0; + var delta = toIndex - fromIndex; + + if (delta) { + forceNextPop = true; + go(delta); + } + } + + var initialLocation = getDOMLocation(getHistoryState()); + var allKeys = [initialLocation.key]; // Public interface + + function createHref(location) { + return basename + createPath(location); + } + + function push(path, state) { + warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored'); + var action = 'PUSH'; + var location = createLocation(path, state, createKey(), history.location); + transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { + if (!ok) return; + var href = createHref(location); + var key = location.key, + state = location.state; + + if (canUseHistory) { + globalHistory.pushState({ + key: key, + state: state + }, null, href); + + if (forceRefresh) { + window.location.href = href; + } else { + var prevIndex = allKeys.indexOf(history.location.key); + var nextKeys = allKeys.slice(0, prevIndex + 1); + nextKeys.push(location.key); + allKeys = nextKeys; + setState({ + action: action, + location: location + }); + } + } else { + warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history'); + window.location.href = href; + } + }); + } + + function replace(path, state) { + warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored'); + var action = 'REPLACE'; + var location = createLocation(path, state, createKey(), history.location); + transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { + if (!ok) return; + var href = createHref(location); + var key = location.key, + state = location.state; + + if (canUseHistory) { + globalHistory.replaceState({ + key: key, + state: state + }, null, href); + + if (forceRefresh) { + window.location.replace(href); + } else { + var prevIndex = allKeys.indexOf(history.location.key); + if (prevIndex !== -1) allKeys[prevIndex] = location.key; + setState({ + action: action, + location: location + }); + } + } else { + warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history'); + window.location.replace(href); + } + }); + } + + function go(n) { + globalHistory.go(n); + } + + function goBack() { + go(-1); + } + + function goForward() { + go(1); + } + + var listenerCount = 0; + + function checkDOMListeners(delta) { + listenerCount += delta; + + if (listenerCount === 1 && delta === 1) { + window.addEventListener(PopStateEvent, handlePopState); + if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange); + } else if (listenerCount === 0) { + window.removeEventListener(PopStateEvent, handlePopState); + if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange); + } + } + + var isBlocked = false; + + function block(prompt) { + if (prompt === void 0) { + prompt = false; + } + + var unblock = transitionManager.setPrompt(prompt); + + if (!isBlocked) { + checkDOMListeners(1); + isBlocked = true; + } + + return function () { + if (isBlocked) { + isBlocked = false; + checkDOMListeners(-1); + } + + return unblock(); + }; + } + + function listen(listener) { + var unlisten = transitionManager.appendListener(listener); + checkDOMListeners(1); + return function () { + checkDOMListeners(-1); + unlisten(); + }; + } + + var history = { + length: globalHistory.length, + action: 'POP', + location: initialLocation, + createHref: createHref, + push: push, + replace: replace, + go: go, + goBack: goBack, + goForward: goForward, + block: block, + listen: listen + }; + return history; +} + +var HashChangeEvent$1 = 'hashchange'; +var HashPathCoders = { + hashbang: { + encodePath: function encodePath(path) { + return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path); + }, + decodePath: function decodePath(path) { + return path.charAt(0) === '!' ? path.substr(1) : path; + } + }, + noslash: { + encodePath: stripLeadingSlash, + decodePath: addLeadingSlash + }, + slash: { + encodePath: addLeadingSlash, + decodePath: addLeadingSlash + } +}; + +function stripHash(url) { + var hashIndex = url.indexOf('#'); + return hashIndex === -1 ? url : url.slice(0, hashIndex); +} + +function getHashPath() { + // We can't use window.location.hash here because it's not + // consistent across browsers - Firefox will pre-decode it! + var href = window.location.href; + var hashIndex = href.indexOf('#'); + return hashIndex === -1 ? '' : href.substring(hashIndex + 1); +} + +function pushHashPath(path) { + window.location.hash = path; +} + +function replaceHashPath(path) { + window.location.replace(stripHash(window.location.href) + '#' + path); +} + +function createHashHistory(props) { + if (props === void 0) { + props = {}; + } + + !canUseDOM ? invariant(false, 'Hash history needs a DOM') : void 0; + var globalHistory = window.history; + var canGoWithoutReload = supportsGoWithoutReloadUsingHash(); + var _props = props, + _props$getUserConfirm = _props.getUserConfirmation, + getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm, + _props$hashType = _props.hashType, + hashType = _props$hashType === void 0 ? 'slash' : _props$hashType; + var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : ''; + var _HashPathCoders$hashT = HashPathCoders[hashType], + encodePath = _HashPathCoders$hashT.encodePath, + decodePath = _HashPathCoders$hashT.decodePath; + + function getDOMLocation() { + var path = decodePath(getHashPath()); + warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path "' + path + '" to begin with "' + basename + '".'); + if (basename) path = stripBasename(path, basename); + return createLocation(path); + } + + var transitionManager = createTransitionManager(); + + function setState(nextState) { + _extends(history, nextState); + + history.length = globalHistory.length; + transitionManager.notifyListeners(history.location, history.action); + } + + var forceNextPop = false; + var ignorePath = null; + + function locationsAreEqual$$1(a, b) { + return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash; + } + + function handleHashChange() { + var path = getHashPath(); + var encodedPath = encodePath(path); + + if (path !== encodedPath) { + // Ensure we always have a properly-encoded hash. + replaceHashPath(encodedPath); + } else { + var location = getDOMLocation(); + var prevLocation = history.location; + if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change. + + if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace. + + ignorePath = null; + handlePop(location); + } + } + + function handlePop(location) { + if (forceNextPop) { + forceNextPop = false; + setState(); + } else { + var action = 'POP'; + transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { + if (ok) { + setState({ + action: action, + location: location + }); + } else { + revertPop(location); + } + }); + } + } + + function revertPop(fromLocation) { + var toLocation = history.location; // TODO: We could probably make this more reliable by + // keeping a list of paths we've seen in sessionStorage. + // Instead, we just default to 0 for paths we don't know. + + var toIndex = allPaths.lastIndexOf(createPath(toLocation)); + if (toIndex === -1) toIndex = 0; + var fromIndex = allPaths.lastIndexOf(createPath(fromLocation)); + if (fromIndex === -1) fromIndex = 0; + var delta = toIndex - fromIndex; + + if (delta) { + forceNextPop = true; + go(delta); + } + } // Ensure the hash is encoded properly before doing anything else. + + + var path = getHashPath(); + var encodedPath = encodePath(path); + if (path !== encodedPath) replaceHashPath(encodedPath); + var initialLocation = getDOMLocation(); + var allPaths = [createPath(initialLocation)]; // Public interface + + function createHref(location) { + var baseTag = document.querySelector('base'); + var href = ''; + + if (baseTag && baseTag.getAttribute('href')) { + href = stripHash(window.location.href); + } + + return href + '#' + encodePath(basename + createPath(location)); + } + + function push(path, state) { + warning(state === undefined, 'Hash history cannot push state; it is ignored'); + var action = 'PUSH'; + var location = createLocation(path, undefined, undefined, history.location); + transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { + if (!ok) return; + var path = createPath(location); + var encodedPath = encodePath(basename + path); + var hashChanged = getHashPath() !== encodedPath; + + if (hashChanged) { + // We cannot tell if a hashchange was caused by a PUSH, so we'd + // rather setState here and ignore the hashchange. The caveat here + // is that other hash histories in the page will consider it a POP. + ignorePath = path; + pushHashPath(encodedPath); + var prevIndex = allPaths.lastIndexOf(createPath(history.location)); + var nextPaths = allPaths.slice(0, prevIndex + 1); + nextPaths.push(path); + allPaths = nextPaths; + setState({ + action: action, + location: location + }); + } else { + warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack'); + setState(); + } + }); + } + + function replace(path, state) { + warning(state === undefined, 'Hash history cannot replace state; it is ignored'); + var action = 'REPLACE'; + var location = createLocation(path, undefined, undefined, history.location); + transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { + if (!ok) return; + var path = createPath(location); + var encodedPath = encodePath(basename + path); + var hashChanged = getHashPath() !== encodedPath; + + if (hashChanged) { + // We cannot tell if a hashchange was caused by a REPLACE, so we'd + // rather setState here and ignore the hashchange. The caveat here + // is that other hash histories in the page will consider it a POP. + ignorePath = path; + replaceHashPath(encodedPath); + } + + var prevIndex = allPaths.indexOf(createPath(history.location)); + if (prevIndex !== -1) allPaths[prevIndex] = path; + setState({ + action: action, + location: location + }); + }); + } + + function go(n) { + warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser'); + globalHistory.go(n); + } + + function goBack() { + go(-1); + } + + function goForward() { + go(1); + } + + var listenerCount = 0; + + function checkDOMListeners(delta) { + listenerCount += delta; + + if (listenerCount === 1 && delta === 1) { + window.addEventListener(HashChangeEvent$1, handleHashChange); + } else if (listenerCount === 0) { + window.removeEventListener(HashChangeEvent$1, handleHashChange); + } + } + + var isBlocked = false; + + function block(prompt) { + if (prompt === void 0) { + prompt = false; + } + + var unblock = transitionManager.setPrompt(prompt); + + if (!isBlocked) { + checkDOMListeners(1); + isBlocked = true; + } + + return function () { + if (isBlocked) { + isBlocked = false; + checkDOMListeners(-1); + } + + return unblock(); + }; + } + + function listen(listener) { + var unlisten = transitionManager.appendListener(listener); + checkDOMListeners(1); + return function () { + checkDOMListeners(-1); + unlisten(); + }; + } + + var history = { + length: globalHistory.length, + action: 'POP', + location: initialLocation, + createHref: createHref, + push: push, + replace: replace, + go: go, + goBack: goBack, + goForward: goForward, + block: block, + listen: listen + }; + return history; +} + +function clamp(n, lowerBound, upperBound) { + return Math.min(Math.max(n, lowerBound), upperBound); +} +/** + * Creates a history object that stores locations in memory. + */ + + +function createMemoryHistory(props) { + if (props === void 0) { + props = {}; + } + + var _props = props, + getUserConfirmation = _props.getUserConfirmation, + _props$initialEntries = _props.initialEntries, + initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries, + _props$initialIndex = _props.initialIndex, + initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex, + _props$keyLength = _props.keyLength, + keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength; + var transitionManager = createTransitionManager(); + + function setState(nextState) { + _extends(history, nextState); + + history.length = history.entries.length; + transitionManager.notifyListeners(history.location, history.action); + } + + function createKey() { + return Math.random().toString(36).substr(2, keyLength); + } + + var index = clamp(initialIndex, 0, initialEntries.length - 1); + var entries = initialEntries.map(function (entry) { + return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey()); + }); // Public interface + + var createHref = createPath; + + function push(path, state) { + warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored'); + var action = 'PUSH'; + var location = createLocation(path, state, createKey(), history.location); + transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { + if (!ok) return; + var prevIndex = history.index; + var nextIndex = prevIndex + 1; + var nextEntries = history.entries.slice(0); + + if (nextEntries.length > nextIndex) { + nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location); + } else { + nextEntries.push(location); + } + + setState({ + action: action, + location: location, + index: nextIndex, + entries: nextEntries + }); + }); + } + + function replace(path, state) { + warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored'); + var action = 'REPLACE'; + var location = createLocation(path, state, createKey(), history.location); + transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { + if (!ok) return; + history.entries[history.index] = location; + setState({ + action: action, + location: location + }); + }); + } + + function go(n) { + var nextIndex = clamp(history.index + n, 0, history.entries.length - 1); + var action = 'POP'; + var location = history.entries[nextIndex]; + transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { + if (ok) { + setState({ + action: action, + location: location, + index: nextIndex + }); + } else { + // Mimic the behavior of DOM histories by + // causing a render after a cancelled POP. + setState(); + } + }); + } + + function goBack() { + go(-1); + } + + function goForward() { + go(1); + } + + function canGo(n) { + var nextIndex = history.index + n; + return nextIndex >= 0 && nextIndex < history.entries.length; + } + + function block(prompt) { + if (prompt === void 0) { + prompt = false; + } + + return transitionManager.setPrompt(prompt); + } + + function listen(listener) { + return transitionManager.appendListener(listener); + } + + var history = { + length: entries.length, + action: 'POP', + location: entries[index], + index: index, + entries: entries, + createHref: createHref, + push: push, + replace: replace, + go: go, + goBack: goBack, + goForward: goForward, + canGo: canGo, + block: block, + listen: listen + }; + return history; +} + +exports.createBrowserHistory = createBrowserHistory; +exports.createHashHistory = createHashHistory; +exports.createMemoryHistory = createMemoryHistory; +exports.createLocation = createLocation; +exports.locationsAreEqual = locationsAreEqual; +exports.parsePath = parsePath; +exports.createPath = createPath; diff --git a/node_modules/history/cjs/history.min.js b/node_modules/history/cjs/history.min.js new file mode 100644 index 0000000..f5858d8 --- /dev/null +++ b/node_modules/history/cjs/history.min.js @@ -0,0 +1 @@ +"use strict";function _interopDefault(t){return t&&"object"==typeof t&&"default"in t?t.default:t}Object.defineProperty(exports,"__esModule",{value:!0});var resolvePathname=_interopDefault(require("resolve-pathname")),valueEqual=_interopDefault(require("value-equal"));require("tiny-warning");var invariant=_interopDefault(require("tiny-invariant"));function _extends(){return(_extends=Object.assign||function(t){for(var n=1;nn?e.splice(n,e.length-n,a):e.push(a),u({action:"PUSH",location:a,index:n,entries:e})}})},replace:function(t,n){var e="REPLACE",a=createLocation(t,n,f(),g.location);h.confirmTransitionTo(a,e,r,function(t){t&&(g.entries[g.index]=a,u({action:e,location:a}))})},go:p,goBack:function(){p(-1)},goForward:function(){p(1)},canGo:function(t){var n=g.index+t;return 0<=n&&n 0 + ? format.replace(/%s/g, function() { + return subs[index++]; + }) + : format); + + if (typeof console !== 'undefined') { + console.error(message); + } + + try { + // --- Welcome to debugging history --- + // This error was thrown as a convenience so that you can use the + // stack trace to find the callsite that triggered this warning. + throw new Error(message); + } catch (e) {} + }; +} + +export default function(member) { + printWarning( + 'Please use `import { %s } from "history"` instead of `import %s from "history/es/%s"`. ' + + 'Support for the latter will be removed in the next major release.', + [member, member] + ); +} diff --git a/node_modules/history/esm/history.js b/node_modules/history/esm/history.js new file mode 100644 index 0000000..df67820 --- /dev/null +++ b/node_modules/history/esm/history.js @@ -0,0 +1,919 @@ +import _extends from '@babel/runtime/helpers/esm/extends'; +import resolvePathname from 'resolve-pathname'; +import valueEqual from 'value-equal'; +import warning from 'tiny-warning'; +import invariant from 'tiny-invariant'; + +function addLeadingSlash(path) { + return path.charAt(0) === '/' ? path : '/' + path; +} +function stripLeadingSlash(path) { + return path.charAt(0) === '/' ? path.substr(1) : path; +} +function hasBasename(path, prefix) { + return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1; +} +function stripBasename(path, prefix) { + return hasBasename(path, prefix) ? path.substr(prefix.length) : path; +} +function stripTrailingSlash(path) { + return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path; +} +function parsePath(path) { + var pathname = path || '/'; + var search = ''; + var hash = ''; + var hashIndex = pathname.indexOf('#'); + + if (hashIndex !== -1) { + hash = pathname.substr(hashIndex); + pathname = pathname.substr(0, hashIndex); + } + + var searchIndex = pathname.indexOf('?'); + + if (searchIndex !== -1) { + search = pathname.substr(searchIndex); + pathname = pathname.substr(0, searchIndex); + } + + return { + pathname: pathname, + search: search === '?' ? '' : search, + hash: hash === '#' ? '' : hash + }; +} +function createPath(location) { + var pathname = location.pathname, + search = location.search, + hash = location.hash; + var path = pathname || '/'; + if (search && search !== '?') path += search.charAt(0) === '?' ? search : "?" + search; + if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : "#" + hash; + return path; +} + +function createLocation(path, state, key, currentLocation) { + var location; + + if (typeof path === 'string') { + // Two-arg form: push(path, state) + location = parsePath(path); + location.state = state; + } else { + // One-arg form: push(location) + location = _extends({}, path); + if (location.pathname === undefined) location.pathname = ''; + + if (location.search) { + if (location.search.charAt(0) !== '?') location.search = '?' + location.search; + } else { + location.search = ''; + } + + if (location.hash) { + if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash; + } else { + location.hash = ''; + } + + if (state !== undefined && location.state === undefined) location.state = state; + } + + try { + location.pathname = decodeURI(location.pathname); + } catch (e) { + if (e instanceof URIError) { + throw new URIError('Pathname "' + location.pathname + '" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.'); + } else { + throw e; + } + } + + if (key) location.key = key; + + if (currentLocation) { + // Resolve incomplete/relative pathname relative to current location. + if (!location.pathname) { + location.pathname = currentLocation.pathname; + } else if (location.pathname.charAt(0) !== '/') { + location.pathname = resolvePathname(location.pathname, currentLocation.pathname); + } + } else { + // When there is no prior location and pathname is empty, set it to / + if (!location.pathname) { + location.pathname = '/'; + } + } + + return location; +} +function locationsAreEqual(a, b) { + return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state); +} + +function createTransitionManager() { + var prompt = null; + + function setPrompt(nextPrompt) { + process.env.NODE_ENV !== "production" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0; + prompt = nextPrompt; + return function () { + if (prompt === nextPrompt) prompt = null; + }; + } + + function confirmTransitionTo(location, action, getUserConfirmation, callback) { + // TODO: If another transition starts while we're still confirming + // the previous one, we may end up in a weird state. Figure out the + // best way to handle this. + if (prompt != null) { + var result = typeof prompt === 'function' ? prompt(location, action) : prompt; + + if (typeof result === 'string') { + if (typeof getUserConfirmation === 'function') { + getUserConfirmation(result, callback); + } else { + process.env.NODE_ENV !== "production" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0; + callback(true); + } + } else { + // Return false from a transition hook to cancel the transition. + callback(result !== false); + } + } else { + callback(true); + } + } + + var listeners = []; + + function appendListener(fn) { + var isActive = true; + + function listener() { + if (isActive) fn.apply(void 0, arguments); + } + + listeners.push(listener); + return function () { + isActive = false; + listeners = listeners.filter(function (item) { + return item !== listener; + }); + }; + } + + function notifyListeners() { + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + listeners.forEach(function (listener) { + return listener.apply(void 0, args); + }); + } + + return { + setPrompt: setPrompt, + confirmTransitionTo: confirmTransitionTo, + appendListener: appendListener, + notifyListeners: notifyListeners + }; +} + +var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement); +function getConfirmation(message, callback) { + callback(window.confirm(message)); // eslint-disable-line no-alert +} +/** + * Returns true if the HTML5 history API is supported. Taken from Modernizr. + * + * https://github.com/Modernizr/Modernizr/blob/master/LICENSE + * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js + * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586 + */ + +function supportsHistory() { + var ua = window.navigator.userAgent; + if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false; + return window.history && 'pushState' in window.history; +} +/** + * Returns true if browser fires popstate on hash change. + * IE10 and IE11 do not. + */ + +function supportsPopStateOnHashChange() { + return window.navigator.userAgent.indexOf('Trident') === -1; +} +/** + * Returns false if using go(n) with hash history causes a full page reload. + */ + +function supportsGoWithoutReloadUsingHash() { + return window.navigator.userAgent.indexOf('Firefox') === -1; +} +/** + * Returns true if a given popstate event is an extraneous WebKit event. + * Accounts for the fact that Chrome on iOS fires real popstate events + * containing undefined state when pressing the back button. + */ + +function isExtraneousPopstateEvent(event) { + return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1; +} + +var PopStateEvent = 'popstate'; +var HashChangeEvent = 'hashchange'; + +function getHistoryState() { + try { + return window.history.state || {}; + } catch (e) { + // IE 11 sometimes throws when accessing window.history.state + // See https://github.com/ReactTraining/history/pull/289 + return {}; + } +} +/** + * Creates a history object that uses the HTML5 history API including + * pushState, replaceState, and the popstate event. + */ + + +function createBrowserHistory(props) { + if (props === void 0) { + props = {}; + } + + !canUseDOM ? process.env.NODE_ENV !== "production" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0; + var globalHistory = window.history; + var canUseHistory = supportsHistory(); + var needsHashChangeListener = !supportsPopStateOnHashChange(); + var _props = props, + _props$forceRefresh = _props.forceRefresh, + forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh, + _props$getUserConfirm = _props.getUserConfirmation, + getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm, + _props$keyLength = _props.keyLength, + keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength; + var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : ''; + + function getDOMLocation(historyState) { + var _ref = historyState || {}, + key = _ref.key, + state = _ref.state; + + var _window$location = window.location, + pathname = _window$location.pathname, + search = _window$location.search, + hash = _window$location.hash; + var path = pathname + search + hash; + process.env.NODE_ENV !== "production" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path "' + path + '" to begin with "' + basename + '".') : void 0; + if (basename) path = stripBasename(path, basename); + return createLocation(path, state, key); + } + + function createKey() { + return Math.random().toString(36).substr(2, keyLength); + } + + var transitionManager = createTransitionManager(); + + function setState(nextState) { + _extends(history, nextState); + + history.length = globalHistory.length; + transitionManager.notifyListeners(history.location, history.action); + } + + function handlePopState(event) { + // Ignore extraneous popstate events in WebKit. + if (isExtraneousPopstateEvent(event)) return; + handlePop(getDOMLocation(event.state)); + } + + function handleHashChange() { + handlePop(getDOMLocation(getHistoryState())); + } + + var forceNextPop = false; + + function handlePop(location) { + if (forceNextPop) { + forceNextPop = false; + setState(); + } else { + var action = 'POP'; + transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { + if (ok) { + setState({ + action: action, + location: location + }); + } else { + revertPop(location); + } + }); + } + } + + function revertPop(fromLocation) { + var toLocation = history.location; // TODO: We could probably make this more reliable by + // keeping a list of keys we've seen in sessionStorage. + // Instead, we just default to 0 for keys we don't know. + + var toIndex = allKeys.indexOf(toLocation.key); + if (toIndex === -1) toIndex = 0; + var fromIndex = allKeys.indexOf(fromLocation.key); + if (fromIndex === -1) fromIndex = 0; + var delta = toIndex - fromIndex; + + if (delta) { + forceNextPop = true; + go(delta); + } + } + + var initialLocation = getDOMLocation(getHistoryState()); + var allKeys = [initialLocation.key]; // Public interface + + function createHref(location) { + return basename + createPath(location); + } + + function push(path, state) { + process.env.NODE_ENV !== "production" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0; + var action = 'PUSH'; + var location = createLocation(path, state, createKey(), history.location); + transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { + if (!ok) return; + var href = createHref(location); + var key = location.key, + state = location.state; + + if (canUseHistory) { + globalHistory.pushState({ + key: key, + state: state + }, null, href); + + if (forceRefresh) { + window.location.href = href; + } else { + var prevIndex = allKeys.indexOf(history.location.key); + var nextKeys = allKeys.slice(0, prevIndex + 1); + nextKeys.push(location.key); + allKeys = nextKeys; + setState({ + action: action, + location: location + }); + } + } else { + process.env.NODE_ENV !== "production" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0; + window.location.href = href; + } + }); + } + + function replace(path, state) { + process.env.NODE_ENV !== "production" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0; + var action = 'REPLACE'; + var location = createLocation(path, state, createKey(), history.location); + transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { + if (!ok) return; + var href = createHref(location); + var key = location.key, + state = location.state; + + if (canUseHistory) { + globalHistory.replaceState({ + key: key, + state: state + }, null, href); + + if (forceRefresh) { + window.location.replace(href); + } else { + var prevIndex = allKeys.indexOf(history.location.key); + if (prevIndex !== -1) allKeys[prevIndex] = location.key; + setState({ + action: action, + location: location + }); + } + } else { + process.env.NODE_ENV !== "production" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0; + window.location.replace(href); + } + }); + } + + function go(n) { + globalHistory.go(n); + } + + function goBack() { + go(-1); + } + + function goForward() { + go(1); + } + + var listenerCount = 0; + + function checkDOMListeners(delta) { + listenerCount += delta; + + if (listenerCount === 1 && delta === 1) { + window.addEventListener(PopStateEvent, handlePopState); + if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange); + } else if (listenerCount === 0) { + window.removeEventListener(PopStateEvent, handlePopState); + if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange); + } + } + + var isBlocked = false; + + function block(prompt) { + if (prompt === void 0) { + prompt = false; + } + + var unblock = transitionManager.setPrompt(prompt); + + if (!isBlocked) { + checkDOMListeners(1); + isBlocked = true; + } + + return function () { + if (isBlocked) { + isBlocked = false; + checkDOMListeners(-1); + } + + return unblock(); + }; + } + + function listen(listener) { + var unlisten = transitionManager.appendListener(listener); + checkDOMListeners(1); + return function () { + checkDOMListeners(-1); + unlisten(); + }; + } + + var history = { + length: globalHistory.length, + action: 'POP', + location: initialLocation, + createHref: createHref, + push: push, + replace: replace, + go: go, + goBack: goBack, + goForward: goForward, + block: block, + listen: listen + }; + return history; +} + +var HashChangeEvent$1 = 'hashchange'; +var HashPathCoders = { + hashbang: { + encodePath: function encodePath(path) { + return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path); + }, + decodePath: function decodePath(path) { + return path.charAt(0) === '!' ? path.substr(1) : path; + } + }, + noslash: { + encodePath: stripLeadingSlash, + decodePath: addLeadingSlash + }, + slash: { + encodePath: addLeadingSlash, + decodePath: addLeadingSlash + } +}; + +function stripHash(url) { + var hashIndex = url.indexOf('#'); + return hashIndex === -1 ? url : url.slice(0, hashIndex); +} + +function getHashPath() { + // We can't use window.location.hash here because it's not + // consistent across browsers - Firefox will pre-decode it! + var href = window.location.href; + var hashIndex = href.indexOf('#'); + return hashIndex === -1 ? '' : href.substring(hashIndex + 1); +} + +function pushHashPath(path) { + window.location.hash = path; +} + +function replaceHashPath(path) { + window.location.replace(stripHash(window.location.href) + '#' + path); +} + +function createHashHistory(props) { + if (props === void 0) { + props = {}; + } + + !canUseDOM ? process.env.NODE_ENV !== "production" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0; + var globalHistory = window.history; + var canGoWithoutReload = supportsGoWithoutReloadUsingHash(); + var _props = props, + _props$getUserConfirm = _props.getUserConfirmation, + getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm, + _props$hashType = _props.hashType, + hashType = _props$hashType === void 0 ? 'slash' : _props$hashType; + var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : ''; + var _HashPathCoders$hashT = HashPathCoders[hashType], + encodePath = _HashPathCoders$hashT.encodePath, + decodePath = _HashPathCoders$hashT.decodePath; + + function getDOMLocation() { + var path = decodePath(getHashPath()); + process.env.NODE_ENV !== "production" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path "' + path + '" to begin with "' + basename + '".') : void 0; + if (basename) path = stripBasename(path, basename); + return createLocation(path); + } + + var transitionManager = createTransitionManager(); + + function setState(nextState) { + _extends(history, nextState); + + history.length = globalHistory.length; + transitionManager.notifyListeners(history.location, history.action); + } + + var forceNextPop = false; + var ignorePath = null; + + function locationsAreEqual$$1(a, b) { + return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash; + } + + function handleHashChange() { + var path = getHashPath(); + var encodedPath = encodePath(path); + + if (path !== encodedPath) { + // Ensure we always have a properly-encoded hash. + replaceHashPath(encodedPath); + } else { + var location = getDOMLocation(); + var prevLocation = history.location; + if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change. + + if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace. + + ignorePath = null; + handlePop(location); + } + } + + function handlePop(location) { + if (forceNextPop) { + forceNextPop = false; + setState(); + } else { + var action = 'POP'; + transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { + if (ok) { + setState({ + action: action, + location: location + }); + } else { + revertPop(location); + } + }); + } + } + + function revertPop(fromLocation) { + var toLocation = history.location; // TODO: We could probably make this more reliable by + // keeping a list of paths we've seen in sessionStorage. + // Instead, we just default to 0 for paths we don't know. + + var toIndex = allPaths.lastIndexOf(createPath(toLocation)); + if (toIndex === -1) toIndex = 0; + var fromIndex = allPaths.lastIndexOf(createPath(fromLocation)); + if (fromIndex === -1) fromIndex = 0; + var delta = toIndex - fromIndex; + + if (delta) { + forceNextPop = true; + go(delta); + } + } // Ensure the hash is encoded properly before doing anything else. + + + var path = getHashPath(); + var encodedPath = encodePath(path); + if (path !== encodedPath) replaceHashPath(encodedPath); + var initialLocation = getDOMLocation(); + var allPaths = [createPath(initialLocation)]; // Public interface + + function createHref(location) { + var baseTag = document.querySelector('base'); + var href = ''; + + if (baseTag && baseTag.getAttribute('href')) { + href = stripHash(window.location.href); + } + + return href + '#' + encodePath(basename + createPath(location)); + } + + function push(path, state) { + process.env.NODE_ENV !== "production" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0; + var action = 'PUSH'; + var location = createLocation(path, undefined, undefined, history.location); + transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { + if (!ok) return; + var path = createPath(location); + var encodedPath = encodePath(basename + path); + var hashChanged = getHashPath() !== encodedPath; + + if (hashChanged) { + // We cannot tell if a hashchange was caused by a PUSH, so we'd + // rather setState here and ignore the hashchange. The caveat here + // is that other hash histories in the page will consider it a POP. + ignorePath = path; + pushHashPath(encodedPath); + var prevIndex = allPaths.lastIndexOf(createPath(history.location)); + var nextPaths = allPaths.slice(0, prevIndex + 1); + nextPaths.push(path); + allPaths = nextPaths; + setState({ + action: action, + location: location + }); + } else { + process.env.NODE_ENV !== "production" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0; + setState(); + } + }); + } + + function replace(path, state) { + process.env.NODE_ENV !== "production" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0; + var action = 'REPLACE'; + var location = createLocation(path, undefined, undefined, history.location); + transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { + if (!ok) return; + var path = createPath(location); + var encodedPath = encodePath(basename + path); + var hashChanged = getHashPath() !== encodedPath; + + if (hashChanged) { + // We cannot tell if a hashchange was caused by a REPLACE, so we'd + // rather setState here and ignore the hashchange. The caveat here + // is that other hash histories in the page will consider it a POP. + ignorePath = path; + replaceHashPath(encodedPath); + } + + var prevIndex = allPaths.indexOf(createPath(history.location)); + if (prevIndex !== -1) allPaths[prevIndex] = path; + setState({ + action: action, + location: location + }); + }); + } + + function go(n) { + process.env.NODE_ENV !== "production" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0; + globalHistory.go(n); + } + + function goBack() { + go(-1); + } + + function goForward() { + go(1); + } + + var listenerCount = 0; + + function checkDOMListeners(delta) { + listenerCount += delta; + + if (listenerCount === 1 && delta === 1) { + window.addEventListener(HashChangeEvent$1, handleHashChange); + } else if (listenerCount === 0) { + window.removeEventListener(HashChangeEvent$1, handleHashChange); + } + } + + var isBlocked = false; + + function block(prompt) { + if (prompt === void 0) { + prompt = false; + } + + var unblock = transitionManager.setPrompt(prompt); + + if (!isBlocked) { + checkDOMListeners(1); + isBlocked = true; + } + + return function () { + if (isBlocked) { + isBlocked = false; + checkDOMListeners(-1); + } + + return unblock(); + }; + } + + function listen(listener) { + var unlisten = transitionManager.appendListener(listener); + checkDOMListeners(1); + return function () { + checkDOMListeners(-1); + unlisten(); + }; + } + + var history = { + length: globalHistory.length, + action: 'POP', + location: initialLocation, + createHref: createHref, + push: push, + replace: replace, + go: go, + goBack: goBack, + goForward: goForward, + block: block, + listen: listen + }; + return history; +} + +function clamp(n, lowerBound, upperBound) { + return Math.min(Math.max(n, lowerBound), upperBound); +} +/** + * Creates a history object that stores locations in memory. + */ + + +function createMemoryHistory(props) { + if (props === void 0) { + props = {}; + } + + var _props = props, + getUserConfirmation = _props.getUserConfirmation, + _props$initialEntries = _props.initialEntries, + initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries, + _props$initialIndex = _props.initialIndex, + initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex, + _props$keyLength = _props.keyLength, + keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength; + var transitionManager = createTransitionManager(); + + function setState(nextState) { + _extends(history, nextState); + + history.length = history.entries.length; + transitionManager.notifyListeners(history.location, history.action); + } + + function createKey() { + return Math.random().toString(36).substr(2, keyLength); + } + + var index = clamp(initialIndex, 0, initialEntries.length - 1); + var entries = initialEntries.map(function (entry) { + return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey()); + }); // Public interface + + var createHref = createPath; + + function push(path, state) { + process.env.NODE_ENV !== "production" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0; + var action = 'PUSH'; + var location = createLocation(path, state, createKey(), history.location); + transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { + if (!ok) return; + var prevIndex = history.index; + var nextIndex = prevIndex + 1; + var nextEntries = history.entries.slice(0); + + if (nextEntries.length > nextIndex) { + nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location); + } else { + nextEntries.push(location); + } + + setState({ + action: action, + location: location, + index: nextIndex, + entries: nextEntries + }); + }); + } + + function replace(path, state) { + process.env.NODE_ENV !== "production" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0; + var action = 'REPLACE'; + var location = createLocation(path, state, createKey(), history.location); + transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { + if (!ok) return; + history.entries[history.index] = location; + setState({ + action: action, + location: location + }); + }); + } + + function go(n) { + var nextIndex = clamp(history.index + n, 0, history.entries.length - 1); + var action = 'POP'; + var location = history.entries[nextIndex]; + transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { + if (ok) { + setState({ + action: action, + location: location, + index: nextIndex + }); + } else { + // Mimic the behavior of DOM histories by + // causing a render after a cancelled POP. + setState(); + } + }); + } + + function goBack() { + go(-1); + } + + function goForward() { + go(1); + } + + function canGo(n) { + var nextIndex = history.index + n; + return nextIndex >= 0 && nextIndex < history.entries.length; + } + + function block(prompt) { + if (prompt === void 0) { + prompt = false; + } + + return transitionManager.setPrompt(prompt); + } + + function listen(listener) { + return transitionManager.appendListener(listener); + } + + var history = { + length: entries.length, + action: 'POP', + location: entries[index], + index: index, + entries: entries, + createHref: createHref, + push: push, + replace: replace, + go: go, + goBack: goBack, + goForward: goForward, + canGo: canGo, + block: block, + listen: listen + }; + return history; +} + +export { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath }; diff --git a/node_modules/history/index.js b/node_modules/history/index.js new file mode 100644 index 0000000..1e506e5 --- /dev/null +++ b/node_modules/history/index.js @@ -0,0 +1,7 @@ +'use strict'; + +if (process.env.NODE_ENV === 'production') { + module.exports = require('./cjs/history.min.js'); +} else { + module.exports = require('./cjs/history.js'); +} diff --git a/node_modules/history/package.json b/node_modules/history/package.json new file mode 100644 index 0000000..7276dc8 --- /dev/null +++ b/node_modules/history/package.json @@ -0,0 +1,117 @@ +{ + "_from": "history@^4.9.0", + "_id": "history@4.10.1", + "_inBundle": false, + "_integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", + "_location": "/history", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "history@^4.9.0", + "name": "history", + "escapedName": "history", + "rawSpec": "^4.9.0", + "saveSpec": null, + "fetchSpec": "^4.9.0" + }, + "_requiredBy": [ + "/react-router", + "/react-router-dom" + ], + "_resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", + "_shasum": "33371a65e3a83b267434e2b3f3b1b4c58aad4cf3", + "_spec": "history@^4.9.0", + "_where": "G:\\_comp_\\odsc\\orig\\AllNotes\\node_modules\\react-router-dom", + "author": { + "name": "Michael Jackson" + }, + "browserify": { + "transform": [ + "loose-envify" + ] + }, + "bugs": { + "url": "https://github.com/ReactTraining/history/issues" + }, + "bundleDependencies": false, + "dependencies": { + "@babel/runtime": "^7.1.2", + "loose-envify": "^1.2.0", + "resolve-pathname": "^3.0.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0", + "value-equal": "^1.0.1" + }, + "deprecated": false, + "description": "Manage session history with JavaScript", + "devDependencies": { + "@babel/core": "^7.1.2", + "@babel/plugin-transform-object-assign": "^7.0.0", + "@babel/plugin-transform-runtime": "^7.1.0", + "@babel/preset-env": "^7.1.0", + "babel-core": "^7.0.0-bridge.0", + "babel-eslint": "^7.0.0", + "babel-loader": "^8.0.4", + "babel-plugin-dev-expression": "^0.2.1", + "eslint": "^3.3.0", + "eslint-plugin-import": "^2.0.0", + "expect": "^21.0.0", + "jest-mock": "^21.0.0", + "karma": "^3.1.3", + "karma-browserstack-launcher": "^1.3.0", + "karma-chrome-launcher": "^2.2.0", + "karma-firefox-launcher": "^1.1.0", + "karma-mocha": "^1.3.0", + "karma-mocha-reporter": "^2.2.5", + "karma-sourcemap-loader": "^0.3.7", + "karma-webpack": "^3.0.5", + "mocha": "^5.2.0", + "rollup": "^0.66.6", + "rollup-plugin-babel": "^4.0.3", + "rollup-plugin-commonjs": "^9.2.0", + "rollup-plugin-node-resolve": "^3.4.0", + "rollup-plugin-replace": "^2.1.0", + "rollup-plugin-size-snapshot": "^0.7.0", + "rollup-plugin-uglify": "^6.0.0", + "webpack": "^3.12.0" + }, + "files": [ + "DOMUtils.js", + "ExecutionEnvironment.js", + "LocationUtils.js", + "PathUtils.js", + "cjs", + "createBrowserHistory.js", + "createHashHistory.js", + "createMemoryHistory.js", + "createTransitionManager.js", + "es", + "esm", + "umd", + "warnAboutDeprecatedCJSRequire.js" + ], + "homepage": "https://github.com/ReactTraining/history#readme", + "keywords": [ + "history", + "location" + ], + "license": "MIT", + "main": "index.js", + "module": "esm/history.js", + "name": "history", + "repository": { + "type": "git", + "url": "git+https://github.com/ReactTraining/history.git" + }, + "scripts": { + "build": "rollup -c", + "clean": "git clean -fdX .", + "lint": "eslint modules", + "prepublishOnly": "yarn build", + "test": "karma start --single-run" + }, + "sideEffects": false, + "unpkg": "umd/history.js", + "version": "4.10.1" +} diff --git a/node_modules/history/umd/history.js b/node_modules/history/umd/history.js new file mode 100644 index 0000000..80e4ff6 --- /dev/null +++ b/node_modules/history/umd/history.js @@ -0,0 +1,1085 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : + typeof define === 'function' && define.amd ? define(['exports'], factory) : + (factory((global.History = {}))); +}(this, (function (exports) { 'use strict'; + + function _extends() { + _extends = Object.assign || function (target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + + return target; + }; + + return _extends.apply(this, arguments); + } + + function isAbsolute(pathname) { + return pathname.charAt(0) === '/'; + } + + // About 1.5x faster than the two-arg version of Array#splice() + function spliceOne(list, index) { + for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) { + list[i] = list[k]; + } + + list.pop(); + } + + // This implementation is based heavily on node's url.parse + function resolvePathname(to, from) { + if (from === undefined) from = ''; + + var toParts = (to && to.split('/')) || []; + var fromParts = (from && from.split('/')) || []; + + var isToAbs = to && isAbsolute(to); + var isFromAbs = from && isAbsolute(from); + var mustEndAbs = isToAbs || isFromAbs; + + if (to && isAbsolute(to)) { + // to is absolute + fromParts = toParts; + } else if (toParts.length) { + // to is relative, drop the filename + fromParts.pop(); + fromParts = fromParts.concat(toParts); + } + + if (!fromParts.length) return '/'; + + var hasTrailingSlash; + if (fromParts.length) { + var last = fromParts[fromParts.length - 1]; + hasTrailingSlash = last === '.' || last === '..' || last === ''; + } else { + hasTrailingSlash = false; + } + + var up = 0; + for (var i = fromParts.length; i >= 0; i--) { + var part = fromParts[i]; + + if (part === '.') { + spliceOne(fromParts, i); + } else if (part === '..') { + spliceOne(fromParts, i); + up++; + } else if (up) { + spliceOne(fromParts, i); + up--; + } + } + + if (!mustEndAbs) for (; up--; up) fromParts.unshift('..'); + + if ( + mustEndAbs && + fromParts[0] !== '' && + (!fromParts[0] || !isAbsolute(fromParts[0])) + ) + fromParts.unshift(''); + + var result = fromParts.join('/'); + + if (hasTrailingSlash && result.substr(-1) !== '/') result += '/'; + + return result; + } + + function valueOf(obj) { + return obj.valueOf ? obj.valueOf() : Object.prototype.valueOf.call(obj); + } + + function valueEqual(a, b) { + // Test for strict equality first. + if (a === b) return true; + + // Otherwise, if either of them == null they are not equal. + if (a == null || b == null) return false; + + if (Array.isArray(a)) { + return ( + Array.isArray(b) && + a.length === b.length && + a.every(function(item, index) { + return valueEqual(item, b[index]); + }) + ); + } + + if (typeof a === 'object' || typeof b === 'object') { + var aValue = valueOf(a); + var bValue = valueOf(b); + + if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue); + + return Object.keys(Object.assign({}, a, b)).every(function(key) { + return valueEqual(a[key], b[key]); + }); + } + + return false; + } + + function addLeadingSlash(path) { + return path.charAt(0) === '/' ? path : '/' + path; + } + function stripLeadingSlash(path) { + return path.charAt(0) === '/' ? path.substr(1) : path; + } + function hasBasename(path, prefix) { + return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1; + } + function stripBasename(path, prefix) { + return hasBasename(path, prefix) ? path.substr(prefix.length) : path; + } + function stripTrailingSlash(path) { + return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path; + } + function parsePath(path) { + var pathname = path || '/'; + var search = ''; + var hash = ''; + var hashIndex = pathname.indexOf('#'); + + if (hashIndex !== -1) { + hash = pathname.substr(hashIndex); + pathname = pathname.substr(0, hashIndex); + } + + var searchIndex = pathname.indexOf('?'); + + if (searchIndex !== -1) { + search = pathname.substr(searchIndex); + pathname = pathname.substr(0, searchIndex); + } + + return { + pathname: pathname, + search: search === '?' ? '' : search, + hash: hash === '#' ? '' : hash + }; + } + function createPath(location) { + var pathname = location.pathname, + search = location.search, + hash = location.hash; + var path = pathname || '/'; + if (search && search !== '?') path += search.charAt(0) === '?' ? search : "?" + search; + if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : "#" + hash; + return path; + } + + function createLocation(path, state, key, currentLocation) { + var location; + + if (typeof path === 'string') { + // Two-arg form: push(path, state) + location = parsePath(path); + location.state = state; + } else { + // One-arg form: push(location) + location = _extends({}, path); + if (location.pathname === undefined) location.pathname = ''; + + if (location.search) { + if (location.search.charAt(0) !== '?') location.search = '?' + location.search; + } else { + location.search = ''; + } + + if (location.hash) { + if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash; + } else { + location.hash = ''; + } + + if (state !== undefined && location.state === undefined) location.state = state; + } + + try { + location.pathname = decodeURI(location.pathname); + } catch (e) { + if (e instanceof URIError) { + throw new URIError('Pathname "' + location.pathname + '" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.'); + } else { + throw e; + } + } + + if (key) location.key = key; + + if (currentLocation) { + // Resolve incomplete/relative pathname relative to current location. + if (!location.pathname) { + location.pathname = currentLocation.pathname; + } else if (location.pathname.charAt(0) !== '/') { + location.pathname = resolvePathname(location.pathname, currentLocation.pathname); + } + } else { + // When there is no prior location and pathname is empty, set it to / + if (!location.pathname) { + location.pathname = '/'; + } + } + + return location; + } + function locationsAreEqual(a, b) { + return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state); + } + + function warning(condition, message) { + { + if (condition) { + return; + } + + var text = "Warning: " + message; + + if (typeof console !== 'undefined') { + console.warn(text); + } + + try { + throw Error(text); + } catch (x) {} + } + } + + function createTransitionManager() { + var prompt = null; + + function setPrompt(nextPrompt) { + warning(prompt == null, 'A history supports only one prompt at a time'); + prompt = nextPrompt; + return function () { + if (prompt === nextPrompt) prompt = null; + }; + } + + function confirmTransitionTo(location, action, getUserConfirmation, callback) { + // TODO: If another transition starts while we're still confirming + // the previous one, we may end up in a weird state. Figure out the + // best way to handle this. + if (prompt != null) { + var result = typeof prompt === 'function' ? prompt(location, action) : prompt; + + if (typeof result === 'string') { + if (typeof getUserConfirmation === 'function') { + getUserConfirmation(result, callback); + } else { + warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message'); + callback(true); + } + } else { + // Return false from a transition hook to cancel the transition. + callback(result !== false); + } + } else { + callback(true); + } + } + + var listeners = []; + + function appendListener(fn) { + var isActive = true; + + function listener() { + if (isActive) fn.apply(void 0, arguments); + } + + listeners.push(listener); + return function () { + isActive = false; + listeners = listeners.filter(function (item) { + return item !== listener; + }); + }; + } + + function notifyListeners() { + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + listeners.forEach(function (listener) { + return listener.apply(void 0, args); + }); + } + + return { + setPrompt: setPrompt, + confirmTransitionTo: confirmTransitionTo, + appendListener: appendListener, + notifyListeners: notifyListeners + }; + } + + var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement); + function getConfirmation(message, callback) { + callback(window.confirm(message)); // eslint-disable-line no-alert + } + /** + * Returns true if the HTML5 history API is supported. Taken from Modernizr. + * + * https://github.com/Modernizr/Modernizr/blob/master/LICENSE + * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js + * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586 + */ + + function supportsHistory() { + var ua = window.navigator.userAgent; + if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false; + return window.history && 'pushState' in window.history; + } + /** + * Returns true if browser fires popstate on hash change. + * IE10 and IE11 do not. + */ + + function supportsPopStateOnHashChange() { + return window.navigator.userAgent.indexOf('Trident') === -1; + } + /** + * Returns false if using go(n) with hash history causes a full page reload. + */ + + function supportsGoWithoutReloadUsingHash() { + return window.navigator.userAgent.indexOf('Firefox') === -1; + } + /** + * Returns true if a given popstate event is an extraneous WebKit event. + * Accounts for the fact that Chrome on iOS fires real popstate events + * containing undefined state when pressing the back button. + */ + + function isExtraneousPopstateEvent(event) { + return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1; + } + + var prefix = 'Invariant failed'; + function invariant(condition, message) { + if (condition) { + return; + } + + { + throw new Error(prefix + ": " + (message || '')); + } + } + + var PopStateEvent = 'popstate'; + var HashChangeEvent = 'hashchange'; + + function getHistoryState() { + try { + return window.history.state || {}; + } catch (e) { + // IE 11 sometimes throws when accessing window.history.state + // See https://github.com/ReactTraining/history/pull/289 + return {}; + } + } + /** + * Creates a history object that uses the HTML5 history API including + * pushState, replaceState, and the popstate event. + */ + + + function createBrowserHistory(props) { + if (props === void 0) { + props = {}; + } + + !canUseDOM ? invariant(false, 'Browser history needs a DOM') : void 0; + var globalHistory = window.history; + var canUseHistory = supportsHistory(); + var needsHashChangeListener = !supportsPopStateOnHashChange(); + var _props = props, + _props$forceRefresh = _props.forceRefresh, + forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh, + _props$getUserConfirm = _props.getUserConfirmation, + getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm, + _props$keyLength = _props.keyLength, + keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength; + var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : ''; + + function getDOMLocation(historyState) { + var _ref = historyState || {}, + key = _ref.key, + state = _ref.state; + + var _window$location = window.location, + pathname = _window$location.pathname, + search = _window$location.search, + hash = _window$location.hash; + var path = pathname + search + hash; + warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path "' + path + '" to begin with "' + basename + '".'); + if (basename) path = stripBasename(path, basename); + return createLocation(path, state, key); + } + + function createKey() { + return Math.random().toString(36).substr(2, keyLength); + } + + var transitionManager = createTransitionManager(); + + function setState(nextState) { + _extends(history, nextState); + + history.length = globalHistory.length; + transitionManager.notifyListeners(history.location, history.action); + } + + function handlePopState(event) { + // Ignore extraneous popstate events in WebKit. + if (isExtraneousPopstateEvent(event)) return; + handlePop(getDOMLocation(event.state)); + } + + function handleHashChange() { + handlePop(getDOMLocation(getHistoryState())); + } + + var forceNextPop = false; + + function handlePop(location) { + if (forceNextPop) { + forceNextPop = false; + setState(); + } else { + var action = 'POP'; + transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { + if (ok) { + setState({ + action: action, + location: location + }); + } else { + revertPop(location); + } + }); + } + } + + function revertPop(fromLocation) { + var toLocation = history.location; // TODO: We could probably make this more reliable by + // keeping a list of keys we've seen in sessionStorage. + // Instead, we just default to 0 for keys we don't know. + + var toIndex = allKeys.indexOf(toLocation.key); + if (toIndex === -1) toIndex = 0; + var fromIndex = allKeys.indexOf(fromLocation.key); + if (fromIndex === -1) fromIndex = 0; + var delta = toIndex - fromIndex; + + if (delta) { + forceNextPop = true; + go(delta); + } + } + + var initialLocation = getDOMLocation(getHistoryState()); + var allKeys = [initialLocation.key]; // Public interface + + function createHref(location) { + return basename + createPath(location); + } + + function push(path, state) { + warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored'); + var action = 'PUSH'; + var location = createLocation(path, state, createKey(), history.location); + transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { + if (!ok) return; + var href = createHref(location); + var key = location.key, + state = location.state; + + if (canUseHistory) { + globalHistory.pushState({ + key: key, + state: state + }, null, href); + + if (forceRefresh) { + window.location.href = href; + } else { + var prevIndex = allKeys.indexOf(history.location.key); + var nextKeys = allKeys.slice(0, prevIndex + 1); + nextKeys.push(location.key); + allKeys = nextKeys; + setState({ + action: action, + location: location + }); + } + } else { + warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history'); + window.location.href = href; + } + }); + } + + function replace(path, state) { + warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored'); + var action = 'REPLACE'; + var location = createLocation(path, state, createKey(), history.location); + transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { + if (!ok) return; + var href = createHref(location); + var key = location.key, + state = location.state; + + if (canUseHistory) { + globalHistory.replaceState({ + key: key, + state: state + }, null, href); + + if (forceRefresh) { + window.location.replace(href); + } else { + var prevIndex = allKeys.indexOf(history.location.key); + if (prevIndex !== -1) allKeys[prevIndex] = location.key; + setState({ + action: action, + location: location + }); + } + } else { + warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history'); + window.location.replace(href); + } + }); + } + + function go(n) { + globalHistory.go(n); + } + + function goBack() { + go(-1); + } + + function goForward() { + go(1); + } + + var listenerCount = 0; + + function checkDOMListeners(delta) { + listenerCount += delta; + + if (listenerCount === 1 && delta === 1) { + window.addEventListener(PopStateEvent, handlePopState); + if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange); + } else if (listenerCount === 0) { + window.removeEventListener(PopStateEvent, handlePopState); + if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange); + } + } + + var isBlocked = false; + + function block(prompt) { + if (prompt === void 0) { + prompt = false; + } + + var unblock = transitionManager.setPrompt(prompt); + + if (!isBlocked) { + checkDOMListeners(1); + isBlocked = true; + } + + return function () { + if (isBlocked) { + isBlocked = false; + checkDOMListeners(-1); + } + + return unblock(); + }; + } + + function listen(listener) { + var unlisten = transitionManager.appendListener(listener); + checkDOMListeners(1); + return function () { + checkDOMListeners(-1); + unlisten(); + }; + } + + var history = { + length: globalHistory.length, + action: 'POP', + location: initialLocation, + createHref: createHref, + push: push, + replace: replace, + go: go, + goBack: goBack, + goForward: goForward, + block: block, + listen: listen + }; + return history; + } + + var HashChangeEvent$1 = 'hashchange'; + var HashPathCoders = { + hashbang: { + encodePath: function encodePath(path) { + return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path); + }, + decodePath: function decodePath(path) { + return path.charAt(0) === '!' ? path.substr(1) : path; + } + }, + noslash: { + encodePath: stripLeadingSlash, + decodePath: addLeadingSlash + }, + slash: { + encodePath: addLeadingSlash, + decodePath: addLeadingSlash + } + }; + + function stripHash(url) { + var hashIndex = url.indexOf('#'); + return hashIndex === -1 ? url : url.slice(0, hashIndex); + } + + function getHashPath() { + // We can't use window.location.hash here because it's not + // consistent across browsers - Firefox will pre-decode it! + var href = window.location.href; + var hashIndex = href.indexOf('#'); + return hashIndex === -1 ? '' : href.substring(hashIndex + 1); + } + + function pushHashPath(path) { + window.location.hash = path; + } + + function replaceHashPath(path) { + window.location.replace(stripHash(window.location.href) + '#' + path); + } + + function createHashHistory(props) { + if (props === void 0) { + props = {}; + } + + !canUseDOM ? invariant(false, 'Hash history needs a DOM') : void 0; + var globalHistory = window.history; + var canGoWithoutReload = supportsGoWithoutReloadUsingHash(); + var _props = props, + _props$getUserConfirm = _props.getUserConfirmation, + getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm, + _props$hashType = _props.hashType, + hashType = _props$hashType === void 0 ? 'slash' : _props$hashType; + var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : ''; + var _HashPathCoders$hashT = HashPathCoders[hashType], + encodePath = _HashPathCoders$hashT.encodePath, + decodePath = _HashPathCoders$hashT.decodePath; + + function getDOMLocation() { + var path = decodePath(getHashPath()); + warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path "' + path + '" to begin with "' + basename + '".'); + if (basename) path = stripBasename(path, basename); + return createLocation(path); + } + + var transitionManager = createTransitionManager(); + + function setState(nextState) { + _extends(history, nextState); + + history.length = globalHistory.length; + transitionManager.notifyListeners(history.location, history.action); + } + + var forceNextPop = false; + var ignorePath = null; + + function locationsAreEqual$$1(a, b) { + return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash; + } + + function handleHashChange() { + var path = getHashPath(); + var encodedPath = encodePath(path); + + if (path !== encodedPath) { + // Ensure we always have a properly-encoded hash. + replaceHashPath(encodedPath); + } else { + var location = getDOMLocation(); + var prevLocation = history.location; + if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change. + + if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace. + + ignorePath = null; + handlePop(location); + } + } + + function handlePop(location) { + if (forceNextPop) { + forceNextPop = false; + setState(); + } else { + var action = 'POP'; + transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { + if (ok) { + setState({ + action: action, + location: location + }); + } else { + revertPop(location); + } + }); + } + } + + function revertPop(fromLocation) { + var toLocation = history.location; // TODO: We could probably make this more reliable by + // keeping a list of paths we've seen in sessionStorage. + // Instead, we just default to 0 for paths we don't know. + + var toIndex = allPaths.lastIndexOf(createPath(toLocation)); + if (toIndex === -1) toIndex = 0; + var fromIndex = allPaths.lastIndexOf(createPath(fromLocation)); + if (fromIndex === -1) fromIndex = 0; + var delta = toIndex - fromIndex; + + if (delta) { + forceNextPop = true; + go(delta); + } + } // Ensure the hash is encoded properly before doing anything else. + + + var path = getHashPath(); + var encodedPath = encodePath(path); + if (path !== encodedPath) replaceHashPath(encodedPath); + var initialLocation = getDOMLocation(); + var allPaths = [createPath(initialLocation)]; // Public interface + + function createHref(location) { + var baseTag = document.querySelector('base'); + var href = ''; + + if (baseTag && baseTag.getAttribute('href')) { + href = stripHash(window.location.href); + } + + return href + '#' + encodePath(basename + createPath(location)); + } + + function push(path, state) { + warning(state === undefined, 'Hash history cannot push state; it is ignored'); + var action = 'PUSH'; + var location = createLocation(path, undefined, undefined, history.location); + transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { + if (!ok) return; + var path = createPath(location); + var encodedPath = encodePath(basename + path); + var hashChanged = getHashPath() !== encodedPath; + + if (hashChanged) { + // We cannot tell if a hashchange was caused by a PUSH, so we'd + // rather setState here and ignore the hashchange. The caveat here + // is that other hash histories in the page will consider it a POP. + ignorePath = path; + pushHashPath(encodedPath); + var prevIndex = allPaths.lastIndexOf(createPath(history.location)); + var nextPaths = allPaths.slice(0, prevIndex + 1); + nextPaths.push(path); + allPaths = nextPaths; + setState({ + action: action, + location: location + }); + } else { + warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack'); + setState(); + } + }); + } + + function replace(path, state) { + warning(state === undefined, 'Hash history cannot replace state; it is ignored'); + var action = 'REPLACE'; + var location = createLocation(path, undefined, undefined, history.location); + transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { + if (!ok) return; + var path = createPath(location); + var encodedPath = encodePath(basename + path); + var hashChanged = getHashPath() !== encodedPath; + + if (hashChanged) { + // We cannot tell if a hashchange was caused by a REPLACE, so we'd + // rather setState here and ignore the hashchange. The caveat here + // is that other hash histories in the page will consider it a POP. + ignorePath = path; + replaceHashPath(encodedPath); + } + + var prevIndex = allPaths.indexOf(createPath(history.location)); + if (prevIndex !== -1) allPaths[prevIndex] = path; + setState({ + action: action, + location: location + }); + }); + } + + function go(n) { + warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser'); + globalHistory.go(n); + } + + function goBack() { + go(-1); + } + + function goForward() { + go(1); + } + + var listenerCount = 0; + + function checkDOMListeners(delta) { + listenerCount += delta; + + if (listenerCount === 1 && delta === 1) { + window.addEventListener(HashChangeEvent$1, handleHashChange); + } else if (listenerCount === 0) { + window.removeEventListener(HashChangeEvent$1, handleHashChange); + } + } + + var isBlocked = false; + + function block(prompt) { + if (prompt === void 0) { + prompt = false; + } + + var unblock = transitionManager.setPrompt(prompt); + + if (!isBlocked) { + checkDOMListeners(1); + isBlocked = true; + } + + return function () { + if (isBlocked) { + isBlocked = false; + checkDOMListeners(-1); + } + + return unblock(); + }; + } + + function listen(listener) { + var unlisten = transitionManager.appendListener(listener); + checkDOMListeners(1); + return function () { + checkDOMListeners(-1); + unlisten(); + }; + } + + var history = { + length: globalHistory.length, + action: 'POP', + location: initialLocation, + createHref: createHref, + push: push, + replace: replace, + go: go, + goBack: goBack, + goForward: goForward, + block: block, + listen: listen + }; + return history; + } + + function clamp(n, lowerBound, upperBound) { + return Math.min(Math.max(n, lowerBound), upperBound); + } + /** + * Creates a history object that stores locations in memory. + */ + + + function createMemoryHistory(props) { + if (props === void 0) { + props = {}; + } + + var _props = props, + getUserConfirmation = _props.getUserConfirmation, + _props$initialEntries = _props.initialEntries, + initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries, + _props$initialIndex = _props.initialIndex, + initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex, + _props$keyLength = _props.keyLength, + keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength; + var transitionManager = createTransitionManager(); + + function setState(nextState) { + _extends(history, nextState); + + history.length = history.entries.length; + transitionManager.notifyListeners(history.location, history.action); + } + + function createKey() { + return Math.random().toString(36).substr(2, keyLength); + } + + var index = clamp(initialIndex, 0, initialEntries.length - 1); + var entries = initialEntries.map(function (entry) { + return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey()); + }); // Public interface + + var createHref = createPath; + + function push(path, state) { + warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored'); + var action = 'PUSH'; + var location = createLocation(path, state, createKey(), history.location); + transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { + if (!ok) return; + var prevIndex = history.index; + var nextIndex = prevIndex + 1; + var nextEntries = history.entries.slice(0); + + if (nextEntries.length > nextIndex) { + nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location); + } else { + nextEntries.push(location); + } + + setState({ + action: action, + location: location, + index: nextIndex, + entries: nextEntries + }); + }); + } + + function replace(path, state) { + warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored'); + var action = 'REPLACE'; + var location = createLocation(path, state, createKey(), history.location); + transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { + if (!ok) return; + history.entries[history.index] = location; + setState({ + action: action, + location: location + }); + }); + } + + function go(n) { + var nextIndex = clamp(history.index + n, 0, history.entries.length - 1); + var action = 'POP'; + var location = history.entries[nextIndex]; + transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { + if (ok) { + setState({ + action: action, + location: location, + index: nextIndex + }); + } else { + // Mimic the behavior of DOM histories by + // causing a render after a cancelled POP. + setState(); + } + }); + } + + function goBack() { + go(-1); + } + + function goForward() { + go(1); + } + + function canGo(n) { + var nextIndex = history.index + n; + return nextIndex >= 0 && nextIndex < history.entries.length; + } + + function block(prompt) { + if (prompt === void 0) { + prompt = false; + } + + return transitionManager.setPrompt(prompt); + } + + function listen(listener) { + return transitionManager.appendListener(listener); + } + + var history = { + length: entries.length, + action: 'POP', + location: entries[index], + index: index, + entries: entries, + createHref: createHref, + push: push, + replace: replace, + go: go, + goBack: goBack, + goForward: goForward, + canGo: canGo, + block: block, + listen: listen + }; + return history; + } + + exports.createBrowserHistory = createBrowserHistory; + exports.createHashHistory = createHashHistory; + exports.createMemoryHistory = createMemoryHistory; + exports.createLocation = createLocation; + exports.locationsAreEqual = locationsAreEqual; + exports.parsePath = parsePath; + exports.createPath = createPath; + + Object.defineProperty(exports, '__esModule', { value: true }); + +}))); diff --git a/node_modules/history/umd/history.min.js b/node_modules/history/umd/history.min.js new file mode 100644 index 0000000..84b64e2 --- /dev/null +++ b/node_modules/history/umd/history.min.js @@ -0,0 +1 @@ +!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(n.History={})}(this,function(n){"use strict";function E(){return(E=Object.assign||function(n){for(var t=1;tt?e.splice(t,e.length-t,o):e.push(o),s({action:"PUSH",location:o,index:t,entries:e})}})},replace:function(n,t){var e="REPLACE",o=C(n,t,h(),w.location);f.confirmTransitionTo(o,e,r,function(n){n&&(w.entries[w.index]=o,s({action:e,location:o}))})},go:p,goBack:function(){p(-1)},goForward:function(){p(1)},canGo:function(n){var t=w.index+n;return 0<=t&&t 0 + ? format.replace(/%s/g, function() { + return subs[index++]; + }) + : format); + + if (typeof console !== 'undefined') { + console.error(message); + } + + try { + // --- Welcome to debugging history --- + // This error was thrown as a convenience so that you can use the + // stack trace to find the callsite that triggered this warning. + throw new Error(message); + } catch (e) {} + }; +} + +module.exports = function(member) { + printWarning( + 'Please use `require("history").%s` instead of `require("history/%s")`. ' + + 'Support for the latter will be removed in the next major release.', + [member, member] + ); +}; diff --git a/node_modules/hoist-non-react-statics/CHANGELOG.md b/node_modules/hoist-non-react-statics/CHANGELOG.md new file mode 100644 index 0000000..59994b4 --- /dev/null +++ b/node_modules/hoist-non-react-statics/CHANGELOG.md @@ -0,0 +1,37 @@ +# 3.3.2 (January 22, 2020) +- Fix `React.memo` for v16.12+ (#93) + +# 3.3.1 (November 14, 2019) +- Fix for UMD bundle (#85) +- Tooling changes (#83, #84, #87) + +# 3.3.0 (January 23, 2019) +- Prevent hoisting of React.memo statics (#73) + +# 3.2.1 (December 3, 2018) +- Fixed `defaultProps`, `displayName` and `propTypes` being hoisted from `React.forwardRef` to `React.forwardRef`. ([#71]) + +# 3.2.0 (November 26, 2018) +- Added support for `getDerivedStateFromError`. ([#68]) +- Added support for React versions less than 0.14. ([#69]) + +# 3.1.0 (October 30, 2018) +- Added support for `contextType`. ([#62]) +- Reduced bundle size. ([e89c7a6]) +- Removed TypeScript definitions. ([#61]) + +# 3.0.1 (July 28, 2018) +- Fixed prop-types warnings. ([e0846fe]) + +# 3.0.0 (July 27, 2018) +- Dropped support for React versions less than 0.14. ([#55]) +- Added support for `React.forwardRef` components. ([#55]) + +[#55]: https://github.com/mridgway/hoist-non-react-statics/pull/55 +[#61]: https://github.com/mridgway/hoist-non-react-statics/pull/61 +[#62]: https://github.com/mridgway/hoist-non-react-statics/pull/62 +[#68]: https://github.com/mridgway/hoist-non-react-statics/pull/68 +[#69]: https://github.com/mridgway/hoist-non-react-statics/pull/69 +[#71]: https://github.com/mridgway/hoist-non-react-statics/pull/71 +[e0846fe]: https://github.com/mridgway/hoist-non-react-statics/commit/e0846feefbad8b34d300de9966ffd607aacb81a3 +[e89c7a6]: https://github.com/mridgway/hoist-non-react-statics/commit/e89c7a6168edc19eeadb2d149e600b888e8b0446 diff --git a/node_modules/hoist-non-react-statics/LICENSE.md b/node_modules/hoist-non-react-statics/LICENSE.md new file mode 100644 index 0000000..2464f59 --- /dev/null +++ b/node_modules/hoist-non-react-statics/LICENSE.md @@ -0,0 +1,29 @@ +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. diff --git a/node_modules/hoist-non-react-statics/README.md b/node_modules/hoist-non-react-statics/README.md new file mode 100644 index 0000000..24ea688 --- /dev/null +++ b/node_modules/hoist-non-react-statics/README.md @@ -0,0 +1,55 @@ +# hoist-non-react-statics + +[![NPM version](https://badge.fury.io/js/hoist-non-react-statics.svg)](http://badge.fury.io/js/hoist-non-react-statics) +[![Build Status](https://img.shields.io/travis/mridgway/hoist-non-react-statics.svg)](https://travis-ci.org/mridgway/hoist-non-react-statics) +[![Coverage Status](https://img.shields.io/coveralls/mridgway/hoist-non-react-statics.svg)](https://coveralls.io/r/mridgway/hoist-non-react-statics?branch=master) +[![Dependency Status](https://img.shields.io/david/mridgway/hoist-non-react-statics.svg)](https://david-dm.org/mridgway/hoist-non-react-statics) +[![devDependency Status](https://img.shields.io/david/dev/mridgway/hoist-non-react-statics.svg)](https://david-dm.org/mridgway/hoist-non-react-statics#info=devDependencies) + +Copies non-react specific statics from a child component to a parent component. +Similar to `Object.assign`, but with React static keywords blacklisted from +being overridden. + +```bash +$ npm install --save hoist-non-react-statics +``` + +## Usage + +```js +import hoistNonReactStatics from 'hoist-non-react-statics'; + +hoistNonReactStatics(targetComponent, sourceComponent); +``` + +If you have specific statics that you don't want to be hoisted, you can also pass a third parameter to exclude them: + +```js +hoistNonReactStatics(targetComponent, sourceComponent, { myStatic: true, myOtherStatic: true }); +``` + +## What does this module do? + +See this [explanation](https://facebook.github.io/react/docs/higher-order-components.html#static-methods-must-be-copied-over) from the React docs. + +## Compatible React Versions + +Please use latest 3.x. Versions prior to 3.x will not support ForwardRefs. + +| hoist-non-react-statics Version | Compatible React Version | +|--------------------------|-------------------------------| +| 3.x | 0.13-16.x With ForwardRef Support | +| 2.x | 0.13-16.x Without ForwardRef Support | +| 1.x | 0.13-16.2 | + +## Browser Support + +This package uses `Object.defineProperty` which has a broken implementation in IE8. In order to use this package in IE8, you will need a polyfill that fixes this method. + +## License +This software is free to use under the Yahoo Inc. BSD license. +See the [LICENSE file][] for license text and copyright information. + +[LICENSE file]: https://github.com/mridgway/hoist-non-react-statics/blob/master/LICENSE.md + +Third-party open source code used are listed in our [package.json file]( https://github.com/mridgway/hoist-non-react-statics/blob/master/package.json). diff --git a/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js b/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js new file mode 100644 index 0000000..60f9c4b --- /dev/null +++ b/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js @@ -0,0 +1,103 @@ +'use strict'; + +var reactIs = require('react-is'); + +/** + * Copyright 2015, Yahoo! Inc. + * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. + */ +var REACT_STATICS = { + childContextTypes: true, + contextType: true, + contextTypes: true, + defaultProps: true, + displayName: true, + getDefaultProps: true, + getDerivedStateFromError: true, + getDerivedStateFromProps: true, + mixins: true, + propTypes: true, + type: true +}; +var KNOWN_STATICS = { + name: true, + length: true, + prototype: true, + caller: true, + callee: true, + arguments: true, + arity: true +}; +var FORWARD_REF_STATICS = { + '$$typeof': true, + render: true, + defaultProps: true, + displayName: true, + propTypes: true +}; +var MEMO_STATICS = { + '$$typeof': true, + compare: true, + defaultProps: true, + displayName: true, + propTypes: true, + type: true +}; +var TYPE_STATICS = {}; +TYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS; +TYPE_STATICS[reactIs.Memo] = MEMO_STATICS; + +function getStatics(component) { + // React v16.11 and below + if (reactIs.isMemo(component)) { + return MEMO_STATICS; + } // React v16.12 and above + + + return TYPE_STATICS[component['$$typeof']] || REACT_STATICS; +} + +var defineProperty = Object.defineProperty; +var getOwnPropertyNames = Object.getOwnPropertyNames; +var getOwnPropertySymbols = Object.getOwnPropertySymbols; +var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; +var getPrototypeOf = Object.getPrototypeOf; +var objectPrototype = Object.prototype; +function hoistNonReactStatics(targetComponent, sourceComponent, blacklist) { + if (typeof sourceComponent !== 'string') { + // don't hoist over string (html) components + if (objectPrototype) { + var inheritedComponent = getPrototypeOf(sourceComponent); + + if (inheritedComponent && inheritedComponent !== objectPrototype) { + hoistNonReactStatics(targetComponent, inheritedComponent, blacklist); + } + } + + var keys = getOwnPropertyNames(sourceComponent); + + if (getOwnPropertySymbols) { + keys = keys.concat(getOwnPropertySymbols(sourceComponent)); + } + + var targetStatics = getStatics(targetComponent); + var sourceStatics = getStatics(sourceComponent); + + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + + if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) { + var descriptor = getOwnPropertyDescriptor(sourceComponent, key); + + try { + // Avoid failures from read-only properties + defineProperty(targetComponent, key, descriptor); + } catch (e) {} + } + } + } + + return targetComponent; +} + +module.exports = hoistNonReactStatics; diff --git a/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.js b/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.js new file mode 100644 index 0000000..c6d59c7 --- /dev/null +++ b/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.js @@ -0,0 +1,449 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global = global || self, global.hoistNonReactStatics = factory()); +}(this, (function () { 'use strict'; + + function unwrapExports (x) { + return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x; + } + + function createCommonjsModule(fn, module) { + return module = { exports: {} }, fn(module, module.exports), module.exports; + } + + var reactIs_production_min = createCommonjsModule(function (module, exports) { + Object.defineProperty(exports,"__esModule",{value:!0}); + var b="function"===typeof Symbol&&Symbol.for,c=b?Symbol.for("react.element"):60103,d=b?Symbol.for("react.portal"):60106,e=b?Symbol.for("react.fragment"):60107,f=b?Symbol.for("react.strict_mode"):60108,g=b?Symbol.for("react.profiler"):60114,h=b?Symbol.for("react.provider"):60109,k=b?Symbol.for("react.context"):60110,l=b?Symbol.for("react.async_mode"):60111,m=b?Symbol.for("react.concurrent_mode"):60111,n=b?Symbol.for("react.forward_ref"):60112,p=b?Symbol.for("react.suspense"):60113,q=b?Symbol.for("react.suspense_list"): + 60120,r=b?Symbol.for("react.memo"):60115,t=b?Symbol.for("react.lazy"):60116,v=b?Symbol.for("react.fundamental"):60117,w=b?Symbol.for("react.responder"):60118,x=b?Symbol.for("react.scope"):60119;function y(a){if("object"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function z(a){return y(a)===m} + exports.typeOf=y;exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p; + exports.isValidElementType=function(a){return "string"===typeof a||"function"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||"object"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===v||a.$$typeof===w||a.$$typeof===x)};exports.isAsyncMode=function(a){return z(a)||y(a)===l};exports.isConcurrentMode=z;exports.isContextConsumer=function(a){return y(a)===k};exports.isContextProvider=function(a){return y(a)===h}; + exports.isElement=function(a){return "object"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return y(a)===n};exports.isFragment=function(a){return y(a)===e};exports.isLazy=function(a){return y(a)===t};exports.isMemo=function(a){return y(a)===r};exports.isPortal=function(a){return y(a)===d};exports.isProfiler=function(a){return y(a)===g};exports.isStrictMode=function(a){return y(a)===f};exports.isSuspense=function(a){return y(a)===p}; + }); + + unwrapExports(reactIs_production_min); + var reactIs_production_min_1 = reactIs_production_min.typeOf; + var reactIs_production_min_2 = reactIs_production_min.AsyncMode; + var reactIs_production_min_3 = reactIs_production_min.ConcurrentMode; + var reactIs_production_min_4 = reactIs_production_min.ContextConsumer; + var reactIs_production_min_5 = reactIs_production_min.ContextProvider; + var reactIs_production_min_6 = reactIs_production_min.Element; + var reactIs_production_min_7 = reactIs_production_min.ForwardRef; + var reactIs_production_min_8 = reactIs_production_min.Fragment; + var reactIs_production_min_9 = reactIs_production_min.Lazy; + var reactIs_production_min_10 = reactIs_production_min.Memo; + var reactIs_production_min_11 = reactIs_production_min.Portal; + var reactIs_production_min_12 = reactIs_production_min.Profiler; + var reactIs_production_min_13 = reactIs_production_min.StrictMode; + var reactIs_production_min_14 = reactIs_production_min.Suspense; + var reactIs_production_min_15 = reactIs_production_min.isValidElementType; + var reactIs_production_min_16 = reactIs_production_min.isAsyncMode; + var reactIs_production_min_17 = reactIs_production_min.isConcurrentMode; + var reactIs_production_min_18 = reactIs_production_min.isContextConsumer; + var reactIs_production_min_19 = reactIs_production_min.isContextProvider; + var reactIs_production_min_20 = reactIs_production_min.isElement; + var reactIs_production_min_21 = reactIs_production_min.isForwardRef; + var reactIs_production_min_22 = reactIs_production_min.isFragment; + var reactIs_production_min_23 = reactIs_production_min.isLazy; + var reactIs_production_min_24 = reactIs_production_min.isMemo; + var reactIs_production_min_25 = reactIs_production_min.isPortal; + var reactIs_production_min_26 = reactIs_production_min.isProfiler; + var reactIs_production_min_27 = reactIs_production_min.isStrictMode; + var reactIs_production_min_28 = reactIs_production_min.isSuspense; + + var reactIs_development = createCommonjsModule(function (module, exports) { + + + + if (process.env.NODE_ENV !== "production") { + (function() { + + Object.defineProperty(exports, '__esModule', { value: true }); + + // The Symbol used to tag the ReactElement-like types. If there is no native Symbol + // nor polyfill, then a plain number is used for performance. + var hasSymbol = typeof Symbol === 'function' && Symbol.for; + var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7; + var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca; + var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb; + var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc; + var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2; + var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd; + var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary + // (unstable) APIs that have been removed. Can we remove the symbols? + + var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf; + var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf; + var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0; + var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1; + var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8; + var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3; + var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4; + var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5; + var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6; + var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7; + + function isValidElementType(type) { + return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill. + type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE); + } + + /** + * Forked from fbjs/warning: + * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js + * + * Only change is we use console.warn instead of console.error, + * and do nothing when 'console' is not supported. + * This really simplifies the code. + * --- + * Similar to invariant but only logs a warning if the condition is not met. + * This can be used to log issues in development environments in critical + * paths. Removing the logging code for production environments will keep the + * same logic and follow the same code paths. + */ + var lowPriorityWarningWithoutStack = function () {}; + + { + var printWarning = function (format) { + for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + + var argIndex = 0; + var message = 'Warning: ' + format.replace(/%s/g, function () { + return args[argIndex++]; + }); + + if (typeof console !== 'undefined') { + console.warn(message); + } + + try { + // --- Welcome to debugging React --- + // This error was thrown as a convenience so that you can use this stack + // to find the callsite that caused this warning to fire. + throw new Error(message); + } catch (x) {} + }; + + lowPriorityWarningWithoutStack = function (condition, format) { + if (format === undefined) { + throw new Error('`lowPriorityWarningWithoutStack(condition, format, ...args)` requires a warning ' + 'message argument'); + } + + if (!condition) { + for (var _len2 = arguments.length, args = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) { + args[_key2 - 2] = arguments[_key2]; + } + + printWarning.apply(void 0, [format].concat(args)); + } + }; + } + + var lowPriorityWarningWithoutStack$1 = lowPriorityWarningWithoutStack; + + function typeOf(object) { + if (typeof object === 'object' && object !== null) { + var $$typeof = object.$$typeof; + + switch ($$typeof) { + case REACT_ELEMENT_TYPE: + var type = object.type; + + switch (type) { + case REACT_ASYNC_MODE_TYPE: + case REACT_CONCURRENT_MODE_TYPE: + case REACT_FRAGMENT_TYPE: + case REACT_PROFILER_TYPE: + case REACT_STRICT_MODE_TYPE: + case REACT_SUSPENSE_TYPE: + return type; + + default: + var $$typeofType = type && type.$$typeof; + + switch ($$typeofType) { + case REACT_CONTEXT_TYPE: + case REACT_FORWARD_REF_TYPE: + case REACT_LAZY_TYPE: + case REACT_MEMO_TYPE: + case REACT_PROVIDER_TYPE: + return $$typeofType; + + default: + return $$typeof; + } + + } + + case REACT_PORTAL_TYPE: + return $$typeof; + } + } + + return undefined; + } // AsyncMode is deprecated along with isAsyncMode + + var AsyncMode = REACT_ASYNC_MODE_TYPE; + var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE; + var ContextConsumer = REACT_CONTEXT_TYPE; + var ContextProvider = REACT_PROVIDER_TYPE; + var Element = REACT_ELEMENT_TYPE; + var ForwardRef = REACT_FORWARD_REF_TYPE; + var Fragment = REACT_FRAGMENT_TYPE; + var Lazy = REACT_LAZY_TYPE; + var Memo = REACT_MEMO_TYPE; + var Portal = REACT_PORTAL_TYPE; + var Profiler = REACT_PROFILER_TYPE; + var StrictMode = REACT_STRICT_MODE_TYPE; + var Suspense = REACT_SUSPENSE_TYPE; + var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated + + function isAsyncMode(object) { + { + if (!hasWarnedAboutDeprecatedIsAsyncMode) { + hasWarnedAboutDeprecatedIsAsyncMode = true; + lowPriorityWarningWithoutStack$1(false, 'The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.'); + } + } + + return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE; + } + function isConcurrentMode(object) { + return typeOf(object) === REACT_CONCURRENT_MODE_TYPE; + } + function isContextConsumer(object) { + return typeOf(object) === REACT_CONTEXT_TYPE; + } + function isContextProvider(object) { + return typeOf(object) === REACT_PROVIDER_TYPE; + } + function isElement(object) { + return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE; + } + function isForwardRef(object) { + return typeOf(object) === REACT_FORWARD_REF_TYPE; + } + function isFragment(object) { + return typeOf(object) === REACT_FRAGMENT_TYPE; + } + function isLazy(object) { + return typeOf(object) === REACT_LAZY_TYPE; + } + function isMemo(object) { + return typeOf(object) === REACT_MEMO_TYPE; + } + function isPortal(object) { + return typeOf(object) === REACT_PORTAL_TYPE; + } + function isProfiler(object) { + return typeOf(object) === REACT_PROFILER_TYPE; + } + function isStrictMode(object) { + return typeOf(object) === REACT_STRICT_MODE_TYPE; + } + function isSuspense(object) { + return typeOf(object) === REACT_SUSPENSE_TYPE; + } + + exports.typeOf = typeOf; + exports.AsyncMode = AsyncMode; + exports.ConcurrentMode = ConcurrentMode; + exports.ContextConsumer = ContextConsumer; + exports.ContextProvider = ContextProvider; + exports.Element = Element; + exports.ForwardRef = ForwardRef; + exports.Fragment = Fragment; + exports.Lazy = Lazy; + exports.Memo = Memo; + exports.Portal = Portal; + exports.Profiler = Profiler; + exports.StrictMode = StrictMode; + exports.Suspense = Suspense; + exports.isValidElementType = isValidElementType; + exports.isAsyncMode = isAsyncMode; + exports.isConcurrentMode = isConcurrentMode; + exports.isContextConsumer = isContextConsumer; + exports.isContextProvider = isContextProvider; + exports.isElement = isElement; + exports.isForwardRef = isForwardRef; + exports.isFragment = isFragment; + exports.isLazy = isLazy; + exports.isMemo = isMemo; + exports.isPortal = isPortal; + exports.isProfiler = isProfiler; + exports.isStrictMode = isStrictMode; + exports.isSuspense = isSuspense; + })(); + } + }); + + unwrapExports(reactIs_development); + var reactIs_development_1 = reactIs_development.typeOf; + var reactIs_development_2 = reactIs_development.AsyncMode; + var reactIs_development_3 = reactIs_development.ConcurrentMode; + var reactIs_development_4 = reactIs_development.ContextConsumer; + var reactIs_development_5 = reactIs_development.ContextProvider; + var reactIs_development_6 = reactIs_development.Element; + var reactIs_development_7 = reactIs_development.ForwardRef; + var reactIs_development_8 = reactIs_development.Fragment; + var reactIs_development_9 = reactIs_development.Lazy; + var reactIs_development_10 = reactIs_development.Memo; + var reactIs_development_11 = reactIs_development.Portal; + var reactIs_development_12 = reactIs_development.Profiler; + var reactIs_development_13 = reactIs_development.StrictMode; + var reactIs_development_14 = reactIs_development.Suspense; + var reactIs_development_15 = reactIs_development.isValidElementType; + var reactIs_development_16 = reactIs_development.isAsyncMode; + var reactIs_development_17 = reactIs_development.isConcurrentMode; + var reactIs_development_18 = reactIs_development.isContextConsumer; + var reactIs_development_19 = reactIs_development.isContextProvider; + var reactIs_development_20 = reactIs_development.isElement; + var reactIs_development_21 = reactIs_development.isForwardRef; + var reactIs_development_22 = reactIs_development.isFragment; + var reactIs_development_23 = reactIs_development.isLazy; + var reactIs_development_24 = reactIs_development.isMemo; + var reactIs_development_25 = reactIs_development.isPortal; + var reactIs_development_26 = reactIs_development.isProfiler; + var reactIs_development_27 = reactIs_development.isStrictMode; + var reactIs_development_28 = reactIs_development.isSuspense; + + var reactIs = createCommonjsModule(function (module) { + + if (process.env.NODE_ENV === 'production') { + module.exports = reactIs_production_min; + } else { + module.exports = reactIs_development; + } + }); + var reactIs_1 = reactIs.typeOf; + var reactIs_2 = reactIs.AsyncMode; + var reactIs_3 = reactIs.ConcurrentMode; + var reactIs_4 = reactIs.ContextConsumer; + var reactIs_5 = reactIs.ContextProvider; + var reactIs_6 = reactIs.Element; + var reactIs_7 = reactIs.ForwardRef; + var reactIs_8 = reactIs.Fragment; + var reactIs_9 = reactIs.Lazy; + var reactIs_10 = reactIs.Memo; + var reactIs_11 = reactIs.Portal; + var reactIs_12 = reactIs.Profiler; + var reactIs_13 = reactIs.StrictMode; + var reactIs_14 = reactIs.Suspense; + var reactIs_15 = reactIs.isValidElementType; + var reactIs_16 = reactIs.isAsyncMode; + var reactIs_17 = reactIs.isConcurrentMode; + var reactIs_18 = reactIs.isContextConsumer; + var reactIs_19 = reactIs.isContextProvider; + var reactIs_20 = reactIs.isElement; + var reactIs_21 = reactIs.isForwardRef; + var reactIs_22 = reactIs.isFragment; + var reactIs_23 = reactIs.isLazy; + var reactIs_24 = reactIs.isMemo; + var reactIs_25 = reactIs.isPortal; + var reactIs_26 = reactIs.isProfiler; + var reactIs_27 = reactIs.isStrictMode; + var reactIs_28 = reactIs.isSuspense; + + /** + * Copyright 2015, Yahoo! Inc. + * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. + */ + var REACT_STATICS = { + childContextTypes: true, + contextType: true, + contextTypes: true, + defaultProps: true, + displayName: true, + getDefaultProps: true, + getDerivedStateFromError: true, + getDerivedStateFromProps: true, + mixins: true, + propTypes: true, + type: true + }; + var KNOWN_STATICS = { + name: true, + length: true, + prototype: true, + caller: true, + callee: true, + arguments: true, + arity: true + }; + var FORWARD_REF_STATICS = { + '$$typeof': true, + render: true, + defaultProps: true, + displayName: true, + propTypes: true + }; + var MEMO_STATICS = { + '$$typeof': true, + compare: true, + defaultProps: true, + displayName: true, + propTypes: true, + type: true + }; + var TYPE_STATICS = {}; + TYPE_STATICS[reactIs_7] = FORWARD_REF_STATICS; + TYPE_STATICS[reactIs_10] = MEMO_STATICS; + + function getStatics(component) { + // React v16.11 and below + if (reactIs_24(component)) { + return MEMO_STATICS; + } // React v16.12 and above + + + return TYPE_STATICS[component['$$typeof']] || REACT_STATICS; + } + + var defineProperty = Object.defineProperty; + var getOwnPropertyNames = Object.getOwnPropertyNames; + var getOwnPropertySymbols = Object.getOwnPropertySymbols; + var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + var getPrototypeOf = Object.getPrototypeOf; + var objectPrototype = Object.prototype; + function hoistNonReactStatics(targetComponent, sourceComponent, blacklist) { + if (typeof sourceComponent !== 'string') { + // don't hoist over string (html) components + if (objectPrototype) { + var inheritedComponent = getPrototypeOf(sourceComponent); + + if (inheritedComponent && inheritedComponent !== objectPrototype) { + hoistNonReactStatics(targetComponent, inheritedComponent, blacklist); + } + } + + var keys = getOwnPropertyNames(sourceComponent); + + if (getOwnPropertySymbols) { + keys = keys.concat(getOwnPropertySymbols(sourceComponent)); + } + + var targetStatics = getStatics(targetComponent); + var sourceStatics = getStatics(sourceComponent); + + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + + if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) { + var descriptor = getOwnPropertyDescriptor(sourceComponent, key); + + try { + // Avoid failures from read-only properties + defineProperty(targetComponent, key, descriptor); + } catch (e) {} + } + } + } + + return targetComponent; + } + + return hoistNonReactStatics; + +}))); diff --git a/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.min.js b/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.min.js new file mode 100644 index 0000000..2883e24 --- /dev/null +++ b/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.min.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).hoistNonReactStatics=t()}(this,(function(){"use strict";function e(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function t(e,t){return e(t={exports:{}},t.exports),t.exports}var r=t((function(e,t){Object.defineProperty(t,"__esModule",{value:!0});var r="function"==typeof Symbol&&Symbol.for,o=r?Symbol.for("react.element"):60103,n=r?Symbol.for("react.portal"):60106,c=r?Symbol.for("react.fragment"):60107,a=r?Symbol.for("react.strict_mode"):60108,f=r?Symbol.for("react.profiler"):60114,s=r?Symbol.for("react.provider"):60109,i=r?Symbol.for("react.context"):60110,u=r?Symbol.for("react.async_mode"):60111,y=r?Symbol.for("react.concurrent_mode"):60111,l=r?Symbol.for("react.forward_ref"):60112,p=r?Symbol.for("react.suspense"):60113,m=r?Symbol.for("react.suspense_list"):60120,d=r?Symbol.for("react.memo"):60115,b=r?Symbol.for("react.lazy"):60116,S=r?Symbol.for("react.fundamental"):60117,$=r?Symbol.for("react.responder"):60118,v=r?Symbol.for("react.scope"):60119;function g(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case o:switch(e=e.type){case u:case y:case c:case f:case a:case p:return e;default:switch(e=e&&e.$$typeof){case i:case l:case b:case d:case s:return e;default:return t}}case n:return t}}}function P(e){return g(e)===y}t.typeOf=g,t.AsyncMode=u,t.ConcurrentMode=y,t.ContextConsumer=i,t.ContextProvider=s,t.Element=o,t.ForwardRef=l,t.Fragment=c,t.Lazy=b,t.Memo=d,t.Portal=n,t.Profiler=f,t.StrictMode=a,t.Suspense=p,t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===c||e===y||e===f||e===a||e===p||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===b||e.$$typeof===d||e.$$typeof===s||e.$$typeof===i||e.$$typeof===l||e.$$typeof===S||e.$$typeof===$||e.$$typeof===v)},t.isAsyncMode=function(e){return P(e)||g(e)===u},t.isConcurrentMode=P,t.isContextConsumer=function(e){return g(e)===i},t.isContextProvider=function(e){return g(e)===s},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===o},t.isForwardRef=function(e){return g(e)===l},t.isFragment=function(e){return g(e)===c},t.isLazy=function(e){return g(e)===b},t.isMemo=function(e){return g(e)===d},t.isPortal=function(e){return g(e)===n},t.isProfiler=function(e){return g(e)===f},t.isStrictMode=function(e){return g(e)===a},t.isSuspense=function(e){return g(e)===p}}));e(r);var o=t((function(e,t){"production"!==process.env.NODE_ENV&&function(){Object.defineProperty(t,"__esModule",{value:!0});var e="function"==typeof Symbol&&Symbol.for,r=e?Symbol.for("react.element"):60103,o=e?Symbol.for("react.portal"):60106,n=e?Symbol.for("react.fragment"):60107,c=e?Symbol.for("react.strict_mode"):60108,a=e?Symbol.for("react.profiler"):60114,f=e?Symbol.for("react.provider"):60109,s=e?Symbol.for("react.context"):60110,i=e?Symbol.for("react.async_mode"):60111,u=e?Symbol.for("react.concurrent_mode"):60111,y=e?Symbol.for("react.forward_ref"):60112,l=e?Symbol.for("react.suspense"):60113,p=e?Symbol.for("react.suspense_list"):60120,m=e?Symbol.for("react.memo"):60115,d=e?Symbol.for("react.lazy"):60116,b=e?Symbol.for("react.fundamental"):60117,S=e?Symbol.for("react.responder"):60118,$=e?Symbol.for("react.scope"):60119;var v=function(e){for(var t=arguments.length,r=Array(t>1?t-1:0),o=1;t>o;o++)r[o-1]=arguments[o];var n=0,c="Warning: "+e.replace(/%s/g,(function(){return r[n++]}));void 0!==console&&console.warn(c);try{throw Error(c)}catch(e){}},g=function(e,t){if(void 0===t)throw Error("`lowPriorityWarningWithoutStack(condition, format, ...args)` requires a warning message argument");if(!e){for(var r=arguments.length,o=Array(r>2?r-2:0),n=2;r>n;n++)o[n-2]=arguments[n];v.apply(void 0,[t].concat(o))}};function P(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:var p=e.type;switch(p){case i:case u:case n:case a:case c:case l:return p;default:var b=p&&p.$$typeof;switch(b){case s:case y:case d:case m:case f:return b;default:return t}}case o:return t}}}var h=i,w=u,M=s,x=f,C=r,O=y,_=n,j=d,E=m,F=o,N=a,R=c,T=l,A=!1;function z(e){return P(e)===u}t.typeOf=P,t.AsyncMode=h,t.ConcurrentMode=w,t.ContextConsumer=M,t.ContextProvider=x,t.Element=C,t.ForwardRef=O,t.Fragment=_,t.Lazy=j,t.Memo=E,t.Portal=F,t.Profiler=N,t.StrictMode=R,t.Suspense=T,t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===n||e===u||e===a||e===c||e===l||e===p||"object"==typeof e&&null!==e&&(e.$$typeof===d||e.$$typeof===m||e.$$typeof===f||e.$$typeof===s||e.$$typeof===y||e.$$typeof===b||e.$$typeof===S||e.$$typeof===$)},t.isAsyncMode=function(e){return A||(A=!0,g(!1,"The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 17+. Update your code to use ReactIs.isConcurrentMode() instead. It has the exact same API.")),z(e)||P(e)===i},t.isConcurrentMode=z,t.isContextConsumer=function(e){return P(e)===s},t.isContextProvider=function(e){return P(e)===f},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return P(e)===y},t.isFragment=function(e){return P(e)===n},t.isLazy=function(e){return P(e)===d},t.isMemo=function(e){return P(e)===m},t.isPortal=function(e){return P(e)===o},t.isProfiler=function(e){return P(e)===a},t.isStrictMode=function(e){return P(e)===c},t.isSuspense=function(e){return P(e)===l}}()}));e(o);var n=t((function(e){e.exports="production"===process.env.NODE_ENV?r:o})),c=n.Memo,a=n.isMemo,f={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},s={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},u={};function y(e){return a(e)?i:u[e.$$typeof]||f}u[n.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},u[c]=i;var l=Object.defineProperty,p=Object.getOwnPropertyNames,m=Object.getOwnPropertySymbols,d=Object.getOwnPropertyDescriptor,b=Object.getPrototypeOf,S=Object.prototype;return function e(t,r,o){if("string"!=typeof r){if(S){var n=b(r);n&&n!==S&&e(t,n,o)}var c=p(r);m&&(c=c.concat(m(r)));for(var a=y(t),f=y(r),i=0;c.length>i;++i){var u=c[i];if(!(s[u]||o&&o[u]||f&&f[u]||a&&a[u])){var $=d(r,u);try{l(t,u,$)}catch(e){}}}}return t}})); diff --git a/node_modules/hoist-non-react-statics/package.json b/node_modules/hoist-non-react-statics/package.json new file mode 100644 index 0000000..0861e16 --- /dev/null +++ b/node_modules/hoist-non-react-statics/package.json @@ -0,0 +1,87 @@ +{ + "_from": "hoist-non-react-statics@^3.1.0", + "_id": "hoist-non-react-statics@3.3.2", + "_inBundle": false, + "_integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "_location": "/hoist-non-react-statics", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "hoist-non-react-statics@^3.1.0", + "name": "hoist-non-react-statics", + "escapedName": "hoist-non-react-statics", + "rawSpec": "^3.1.0", + "saveSpec": null, + "fetchSpec": "^3.1.0" + }, + "_requiredBy": [ + "/react-router" + ], + "_resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "_shasum": "ece0acaf71d62c2969c2ec59feff42a4b1a85b45", + "_spec": "hoist-non-react-statics@^3.1.0", + "_where": "G:\\_comp_\\odsc\\orig\\AllNotes\\node_modules\\react-router", + "author": { + "name": "Michael Ridgway", + "email": "mcridgway@gmail.com" + }, + "bugs": { + "url": "https://github.com/mridgway/hoist-non-react-statics/issues" + }, + "bundleDependencies": false, + "dependencies": { + "react-is": "^16.7.0" + }, + "deprecated": false, + "description": "Copies non-react specific statics from a child component to a parent component", + "devDependencies": { + "@babel/core": "^7.5.0", + "@babel/plugin-proposal-class-properties": "^7.5.0", + "@babel/preset-env": "^7.5.0", + "@babel/preset-react": "^7.0.0", + "@babel/register": "^7.4.4", + "chai": "^4.2.0", + "coveralls": "^2.11.1", + "create-react-class": "^15.5.3", + "eslint": "^4.13.1", + "mocha": "^6.1.4", + "nyc": "^14.1.1", + "pre-commit": "^1.0.7", + "prop-types": "^15.6.2", + "react": "^16.7.0", + "rimraf": "^2.6.2", + "rollup": "^1.16.6", + "rollup-plugin-babel": "^4.3.3", + "rollup-plugin-commonjs": "^10.0.1", + "rollup-plugin-node-resolve": "^5.2.0", + "rollup-plugin-terser": "^5.1.1" + }, + "files": [ + "src", + "dist", + "index.d.ts" + ], + "homepage": "https://github.com/mridgway/hoist-non-react-statics#readme", + "keywords": [ + "react" + ], + "license": "BSD-3-Clause", + "main": "dist/hoist-non-react-statics.cjs.js", + "name": "hoist-non-react-statics", + "publishConfig": { + "registry": "https://registry.npmjs.org/" + }, + "repository": { + "type": "git", + "url": "git://github.com/mridgway/hoist-non-react-statics.git" + }, + "scripts": { + "build": "rimraf dist && rollup -c", + "coverage": "nyc report --reporter=text-lcov | coveralls", + "lint": "eslint src", + "prepublish": "npm test", + "test": "nyc mocha tests/unit/ --recursive --reporter spec --require=@babel/register" + }, + "version": "3.3.2" +} diff --git a/node_modules/hoist-non-react-statics/src/index.js b/node_modules/hoist-non-react-statics/src/index.js new file mode 100644 index 0000000..40b764b --- /dev/null +++ b/node_modules/hoist-non-react-statics/src/index.js @@ -0,0 +1,104 @@ +/** + * Copyright 2015, Yahoo! Inc. + * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. + */ +import { ForwardRef, Memo, isMemo } from 'react-is'; + +const REACT_STATICS = { + childContextTypes: true, + contextType: true, + contextTypes: true, + defaultProps: true, + displayName: true, + getDefaultProps: true, + getDerivedStateFromError: true, + getDerivedStateFromProps: true, + mixins: true, + propTypes: true, + type: true +}; + +const KNOWN_STATICS = { + name: true, + length: true, + prototype: true, + caller: true, + callee: true, + arguments: true, + arity: true +}; + +const FORWARD_REF_STATICS = { + '$$typeof': true, + render: true, + defaultProps: true, + displayName: true, + propTypes: true +}; + +const MEMO_STATICS = { + '$$typeof': true, + compare: true, + defaultProps: true, + displayName: true, + propTypes: true, + type: true, +} + +const TYPE_STATICS = {}; +TYPE_STATICS[ForwardRef] = FORWARD_REF_STATICS; +TYPE_STATICS[Memo] = MEMO_STATICS; + +function getStatics(component) { + // React v16.11 and below + if (isMemo(component)) { + return MEMO_STATICS; + } + + // React v16.12 and above + return TYPE_STATICS[component['$$typeof']] || REACT_STATICS; +} + +const defineProperty = Object.defineProperty; +const getOwnPropertyNames = Object.getOwnPropertyNames; +const getOwnPropertySymbols = Object.getOwnPropertySymbols; +const getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; +const getPrototypeOf = Object.getPrototypeOf; +const objectPrototype = Object.prototype; + +export default function hoistNonReactStatics(targetComponent, sourceComponent, blacklist) { + if (typeof sourceComponent !== 'string') { // don't hoist over string (html) components + + if (objectPrototype) { + const inheritedComponent = getPrototypeOf(sourceComponent); + if (inheritedComponent && inheritedComponent !== objectPrototype) { + hoistNonReactStatics(targetComponent, inheritedComponent, blacklist); + } + } + + let keys = getOwnPropertyNames(sourceComponent); + + if (getOwnPropertySymbols) { + keys = keys.concat(getOwnPropertySymbols(sourceComponent)); + } + + const targetStatics = getStatics(targetComponent); + const sourceStatics = getStatics(sourceComponent); + + for (let i = 0; i < keys.length; ++i) { + const key = keys[i]; + if (!KNOWN_STATICS[key] && + !(blacklist && blacklist[key]) && + !(sourceStatics && sourceStatics[key]) && + !(targetStatics && targetStatics[key]) + ) { + const descriptor = getOwnPropertyDescriptor(sourceComponent, key); + try { // Avoid failures from read-only properties + defineProperty(targetComponent, key, descriptor); + } catch (e) {} + } + } + } + + return targetComponent; +}; diff --git a/node_modules/isarray/README.md b/node_modules/isarray/README.md new file mode 100644 index 0000000..052a62b --- /dev/null +++ b/node_modules/isarray/README.md @@ -0,0 +1,54 @@ + +# isarray + +`Array#isArray` for older browsers. + +## Usage + +```js +var isArray = require('isarray'); + +console.log(isArray([])); // => true +console.log(isArray({})); // => false +``` + +## Installation + +With [npm](http://npmjs.org) do + +```bash +$ npm install isarray +``` + +Then bundle for the browser with +[browserify](https://github.com/substack/browserify). + +With [component](http://component.io) do + +```bash +$ component install juliangruber/isarray +``` + +## License + +(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. diff --git a/node_modules/isarray/build/build.js b/node_modules/isarray/build/build.js new file mode 100644 index 0000000..ec58596 --- /dev/null +++ b/node_modules/isarray/build/build.js @@ -0,0 +1,209 @@ + +/** + * Require the given path. + * + * @param {String} path + * @return {Object} exports + * @api public + */ + +function require(path, parent, orig) { + var resolved = require.resolve(path); + + // lookup failed + if (null == resolved) { + orig = orig || path; + parent = parent || 'root'; + var err = new Error('Failed to require "' + orig + '" from "' + parent + '"'); + err.path = orig; + err.parent = parent; + err.require = true; + throw err; + } + + var module = require.modules[resolved]; + + // perform real require() + // by invoking the module's + // registered function + if (!module.exports) { + module.exports = {}; + module.client = module.component = true; + module.call(this, module.exports, require.relative(resolved), module); + } + + return module.exports; +} + +/** + * Registered modules. + */ + +require.modules = {}; + +/** + * Registered aliases. + */ + +require.aliases = {}; + +/** + * Resolve `path`. + * + * Lookup: + * + * - PATH/index.js + * - PATH.js + * - PATH + * + * @param {String} path + * @return {String} path or null + * @api private + */ + +require.resolve = function(path) { + if (path.charAt(0) === '/') path = path.slice(1); + var index = path + '/index.js'; + + var paths = [ + path, + path + '.js', + path + '.json', + path + '/index.js', + path + '/index.json' + ]; + + for (var i = 0; i < paths.length; i++) { + var path = paths[i]; + if (require.modules.hasOwnProperty(path)) return path; + } + + if (require.aliases.hasOwnProperty(index)) { + return require.aliases[index]; + } +}; + +/** + * Normalize `path` relative to the current path. + * + * @param {String} curr + * @param {String} path + * @return {String} + * @api private + */ + +require.normalize = function(curr, path) { + var segs = []; + + if ('.' != path.charAt(0)) return path; + + curr = curr.split('/'); + path = path.split('/'); + + for (var i = 0; i < path.length; ++i) { + if ('..' == path[i]) { + curr.pop(); + } else if ('.' != path[i] && '' != path[i]) { + segs.push(path[i]); + } + } + + return curr.concat(segs).join('/'); +}; + +/** + * Register module at `path` with callback `definition`. + * + * @param {String} path + * @param {Function} definition + * @api private + */ + +require.register = function(path, definition) { + require.modules[path] = definition; +}; + +/** + * Alias a module definition. + * + * @param {String} from + * @param {String} to + * @api private + */ + +require.alias = function(from, to) { + if (!require.modules.hasOwnProperty(from)) { + throw new Error('Failed to alias "' + from + '", it does not exist'); + } + require.aliases[to] = from; +}; + +/** + * Return a require function relative to the `parent` path. + * + * @param {String} parent + * @return {Function} + * @api private + */ + +require.relative = function(parent) { + var p = require.normalize(parent, '..'); + + /** + * lastIndexOf helper. + */ + + function lastIndexOf(arr, obj) { + var i = arr.length; + while (i--) { + if (arr[i] === obj) return i; + } + return -1; + } + + /** + * The relative require() itself. + */ + + function localRequire(path) { + var resolved = localRequire.resolve(path); + return require(resolved, parent, path); + } + + /** + * Resolve relative to the parent. + */ + + localRequire.resolve = function(path) { + var c = path.charAt(0); + if ('/' == c) return path.slice(1); + if ('.' == c) return require.normalize(p, path); + + // resolve deps by returning + // the dep in the nearest "deps" + // directory + var segs = parent.split('/'); + var i = lastIndexOf(segs, 'deps') + 1; + if (!i) i = 0; + path = segs.slice(0, i + 1).join('/') + '/deps/' + path; + return path; + }; + + /** + * Check if module is defined at `path`. + */ + + localRequire.exists = function(path) { + return require.modules.hasOwnProperty(localRequire.resolve(path)); + }; + + return localRequire; +}; +require.register("isarray/index.js", function(exports, require, module){ +module.exports = Array.isArray || function (arr) { + return Object.prototype.toString.call(arr) == '[object Array]'; +}; + +}); +require.alias("isarray/index.js", "isarray/index.js"); + diff --git a/node_modules/isarray/component.json b/node_modules/isarray/component.json new file mode 100644 index 0000000..9e31b68 --- /dev/null +++ b/node_modules/isarray/component.json @@ -0,0 +1,19 @@ +{ + "name" : "isarray", + "description" : "Array#isArray for older browsers", + "version" : "0.0.1", + "repository" : "juliangruber/isarray", + "homepage": "https://github.com/juliangruber/isarray", + "main" : "index.js", + "scripts" : [ + "index.js" + ], + "dependencies" : {}, + "keywords": ["browser","isarray","array"], + "author": { + "name": "Julian Gruber", + "email": "mail@juliangruber.com", + "url": "http://juliangruber.com" + }, + "license": "MIT" +} diff --git a/node_modules/isarray/index.js b/node_modules/isarray/index.js new file mode 100644 index 0000000..5f5ad45 --- /dev/null +++ b/node_modules/isarray/index.js @@ -0,0 +1,3 @@ +module.exports = Array.isArray || function (arr) { + return Object.prototype.toString.call(arr) == '[object Array]'; +}; diff --git a/node_modules/isarray/package.json b/node_modules/isarray/package.json new file mode 100644 index 0000000..f053d28 --- /dev/null +++ b/node_modules/isarray/package.json @@ -0,0 +1,57 @@ +{ + "_from": "isarray@0.0.1", + "_id": "isarray@0.0.1", + "_inBundle": false, + "_integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "_location": "/isarray", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "isarray@0.0.1", + "name": "isarray", + "escapedName": "isarray", + "rawSpec": "0.0.1", + "saveSpec": null, + "fetchSpec": "0.0.1" + }, + "_requiredBy": [ + "/path-to-regexp" + ], + "_resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "_shasum": "8a18acfca9a8f4177e09abfc6038939b05d1eedf", + "_spec": "isarray@0.0.1", + "_where": "G:\\_comp_\\odsc\\orig\\AllNotes\\node_modules\\path-to-regexp", + "author": { + "name": "Julian Gruber", + "email": "mail@juliangruber.com", + "url": "http://juliangruber.com" + }, + "bugs": { + "url": "https://github.com/juliangruber/isarray/issues" + }, + "bundleDependencies": false, + "dependencies": {}, + "deprecated": false, + "description": "Array#isArray for older browsers", + "devDependencies": { + "tap": "*" + }, + "homepage": "https://github.com/juliangruber/isarray", + "keywords": [ + "browser", + "isarray", + "array" + ], + "license": "MIT", + "main": "index.js", + "name": "isarray", + "repository": { + "type": "git", + "url": "git://github.com/juliangruber/isarray.git" + }, + "scripts": { + "test": "tap test/*.js" + }, + "version": "0.0.1" +} diff --git a/node_modules/js-tokens/CHANGELOG.md b/node_modules/js-tokens/CHANGELOG.md new file mode 100644 index 0000000..755e6f6 --- /dev/null +++ b/node_modules/js-tokens/CHANGELOG.md @@ -0,0 +1,151 @@ +### Version 4.0.0 (2018-01-28) ### + +- Added: Support for ES2018. The only change needed was recognizing the `s` + regex flag. +- Changed: _All_ tokens returned by the `matchToToken` function now have a + `closed` property. It is set to `undefined` for the tokens where “closed” + doesn’t make sense. This means that all tokens objects have the same shape, + which might improve performance. + +These are the breaking changes: + +- `'/a/s'.match(jsTokens)` no longer returns `['/', 'a', '/', 's']`, but + `['/a/s']`. (There are of course other variations of this.) +- Code that rely on some token objects not having the `closed` property could + now behave differently. + + +### Version 3.0.2 (2017-06-28) ### + +- No code changes. Just updates to the readme. + + +### Version 3.0.1 (2017-01-30) ### + +- Fixed: ES2015 unicode escapes with more than 6 hex digits are now matched + correctly. + + +### Version 3.0.0 (2017-01-11) ### + +This release contains one breaking change, that should [improve performance in +V8][v8-perf]: + +> So how can you, as a JavaScript developer, ensure that your RegExps are fast? +> If you are not interested in hooking into RegExp internals, make sure that +> neither the RegExp instance, nor its prototype is modified in order to get the +> best performance: +> +> ```js +> var re = /./g; +> re.exec(''); // Fast path. +> re.new_property = 'slow'; +> ``` + +This module used to export a single regex, with `.matchToToken` bolted +on, just like in the above example. This release changes the exports of +the module to avoid this issue. + +Before: + +```js +import jsTokens from "js-tokens" +// or: +var jsTokens = require("js-tokens") +var matchToToken = jsTokens.matchToToken +``` + +After: + +```js +import jsTokens, {matchToToken} from "js-tokens" +// or: +var jsTokens = require("js-tokens").default +var matchToToken = require("js-tokens").matchToToken +``` + +[v8-perf]: http://v8project.blogspot.se/2017/01/speeding-up-v8-regular-expressions.html + + +### Version 2.0.0 (2016-06-19) ### + +- Added: Support for ES2016. In other words, support for the `**` exponentiation + operator. + +These are the breaking changes: + +- `'**'.match(jsTokens)` no longer returns `['*', '*']`, but `['**']`. +- `'**='.match(jsTokens)` no longer returns `['*', '*=']`, but `['**=']`. + + +### Version 1.0.3 (2016-03-27) ### + +- Improved: Made the regex ever so slightly smaller. +- Updated: The readme. + + +### Version 1.0.2 (2015-10-18) ### + +- Improved: Limited npm package contents for a smaller download. Thanks to + @zertosh! + + +### Version 1.0.1 (2015-06-20) ### + +- Fixed: Declared an undeclared variable. + + +### Version 1.0.0 (2015-02-26) ### + +- Changed: Merged the 'operator' and 'punctuation' types into 'punctuator'. That + type is now equivalent to the Punctuator token in the ECMAScript + specification. (Backwards-incompatible change.) +- Fixed: A `-` followed by a number is now correctly matched as a punctuator + followed by a number. It used to be matched as just a number, but there is no + such thing as negative number literals. (Possibly backwards-incompatible + change.) + + +### Version 0.4.1 (2015-02-21) ### + +- Added: Support for the regex `u` flag. + + +### Version 0.4.0 (2015-02-21) ### + +- Improved: `jsTokens.matchToToken` performance. +- Added: Support for octal and binary number literals. +- Added: Support for template strings. + + +### Version 0.3.1 (2015-01-06) ### + +- Fixed: Support for unicode spaces. They used to be allowed in names (which is + very confusing), and some unicode newlines were wrongly allowed in strings and + regexes. + + +### Version 0.3.0 (2014-12-19) ### + +- Changed: The `jsTokens.names` array has been replaced with the + `jsTokens.matchToToken` function. The capturing groups of `jsTokens` are no + longer part of the public API; instead use said function. See this [gist] for + an example. (Backwards-incompatible change.) +- Changed: The empty string is now considered an “invalid” token, instead an + “empty” token (its own group). (Backwards-incompatible change.) +- Removed: component support. (Backwards-incompatible change.) + +[gist]: https://gist.github.com/lydell/be49dbf80c382c473004 + + +### Version 0.2.0 (2014-06-19) ### + +- Changed: Match ES6 function arrows (`=>`) as an operator, instead of its own + category (“functionArrow”), for simplicity. (Backwards-incompatible change.) +- Added: ES6 splats (`...`) are now matched as an operator (instead of three + punctuations). (Backwards-incompatible change.) + + +### Version 0.1.0 (2014-03-08) ### + +- Initial release. diff --git a/node_modules/js-tokens/LICENSE b/node_modules/js-tokens/LICENSE new file mode 100644 index 0000000..54aef52 --- /dev/null +++ b/node_modules/js-tokens/LICENSE @@ -0,0 +1,21 @@ +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. diff --git a/node_modules/js-tokens/README.md b/node_modules/js-tokens/README.md new file mode 100644 index 0000000..00cdf16 --- /dev/null +++ b/node_modules/js-tokens/README.md @@ -0,0 +1,240 @@ +Overview [![Build Status](https://travis-ci.org/lydell/js-tokens.svg?branch=master)](https://travis-ci.org/lydell/js-tokens) +======== + +A regex that tokenizes JavaScript. + +```js +var jsTokens = require("js-tokens").default + +var jsString = "var foo=opts.foo;\n..." + +jsString.match(jsTokens) +// ["var", " ", "foo", "=", "opts", ".", "foo", ";", "\n", ...] +``` + + +Installation +============ + +`npm install js-tokens` + +```js +import jsTokens from "js-tokens" +// or: +var jsTokens = require("js-tokens").default +``` + + +Usage +===== + +### `jsTokens` ### + +A regex with the `g` flag that matches JavaScript tokens. + +The regex _always_ matches, even invalid JavaScript and the empty string. + +The next match is always directly after the previous. + +### `var token = matchToToken(match)` ### + +```js +import {matchToToken} from "js-tokens" +// or: +var matchToToken = require("js-tokens").matchToToken +``` + +Takes a `match` returned by `jsTokens.exec(string)`, and returns a `{type: +String, value: String}` object. The following types are available: + +- string +- comment +- regex +- number +- name +- punctuator +- whitespace +- invalid + +Multi-line comments and strings also have a `closed` property indicating if the +token was closed or not (see below). + +Comments and strings both come in several flavors. To distinguish them, check if +the token starts with `//`, `/*`, `'`, `"` or `` ` ``. + +Names are ECMAScript IdentifierNames, that is, including both identifiers and +keywords. You may use [is-keyword-js] to tell them apart. + +Whitespace includes both line terminators and other whitespace. + +[is-keyword-js]: https://github.com/crissdev/is-keyword-js + + +ECMAScript support +================== + +The intention is to always support the latest ECMAScript version whose feature +set has been finalized. + +If adding support for a newer version requires changes, a new version with a +major verion bump will be released. + +Currently, ECMAScript 2018 is supported. + + +Invalid code handling +===================== + +Unterminated strings are still matched as strings. JavaScript strings cannot +contain (unescaped) newlines, so unterminated strings simply end at the end of +the line. Unterminated template strings can contain unescaped newlines, though, +so they go on to the end of input. + +Unterminated multi-line comments are also still matched as comments. They +simply go on to the end of the input. + +Unterminated regex literals are likely matched as division and whatever is +inside the regex. + +Invalid ASCII characters have their own capturing group. + +Invalid non-ASCII characters are treated as names, to simplify the matching of +names (except unicode spaces which are treated as whitespace). Note: See also +the [ES2018](#es2018) section. + +Regex literals may contain invalid regex syntax. They are still matched as +regex literals. They may also contain repeated regex flags, to keep the regex +simple. + +Strings may contain invalid escape sequences. + + +Limitations +=========== + +Tokenizing JavaScript using regexes—in fact, _one single regex_—won’t be +perfect. But that’s not the point either. + +You may compare jsTokens with [esprima] by using `esprima-compare.js`. +See `npm run esprima-compare`! + +[esprima]: http://esprima.org/ + +### Template string interpolation ### + +Template strings are matched as single tokens, from the starting `` ` `` to the +ending `` ` ``, including interpolations (whose tokens are not matched +individually). + +Matching template string interpolations requires recursive balancing of `{` and +`}`—something that JavaScript regexes cannot do. Only one level of nesting is +supported. + +### Division and regex literals collision ### + +Consider this example: + +```js +var g = 9.82 +var number = bar / 2/g + +var regex = / 2/g +``` + +A human can easily understand that in the `number` line we’re dealing with +division, and in the `regex` line we’re dealing with a regex literal. How come? +Because humans can look at the whole code to put the `/` characters in context. +A JavaScript regex cannot. It only sees forwards. (Well, ES2018 regexes can also +look backwards. See the [ES2018](#es2018) section). + +When the `jsTokens` regex scans throught the above, it will see the following +at the end of both the `number` and `regex` rows: + +```js +/ 2/g +``` + +It is then impossible to know if that is a regex literal, or part of an +expression dealing with division. + +Here is a similar case: + +```js +foo /= 2/g +foo(/= 2/g) +``` + +The first line divides the `foo` variable with `2/g`. The second line calls the +`foo` function with the regex literal `/= 2/g`. Again, since `jsTokens` only +sees forwards, it cannot tell the two cases apart. + +There are some cases where we _can_ tell division and regex literals apart, +though. + +First off, we have the simple cases where there’s only one slash in the line: + +```js +var foo = 2/g +foo /= 2 +``` + +Regex literals cannot contain newlines, so the above cases are correctly +identified as division. Things are only problematic when there are more than +one non-comment slash in a single line. + +Secondly, not every character is a valid regex flag. + +```js +var number = bar / 2/e +``` + +The above example is also correctly identified as division, because `e` is not a +valid regex flag. I initially wanted to future-proof by allowing `[a-zA-Z]*` +(any letter) as flags, but it is not worth it since it increases the amount of +ambigous cases. So only the standard `g`, `m`, `i`, `y` and `u` flags are +allowed. This means that the above example will be identified as division as +long as you don’t rename the `e` variable to some permutation of `gmiyus` 1 to 6 +characters long. + +Lastly, we can look _forward_ for information. + +- If the token following what looks like a regex literal is not valid after a + regex literal, but is valid in a division expression, then the regex literal + is treated as division instead. For example, a flagless regex cannot be + followed by a string, number or name, but all of those three can be the + denominator of a division. +- Generally, if what looks like a regex literal is followed by an operator, the + regex literal is treated as division instead. This is because regexes are + seldomly used with operators (such as `+`, `*`, `&&` and `==`), but division + could likely be part of such an expression. + +Please consult the regex source and the test cases for precise information on +when regex or division is matched (should you need to know). In short, you +could sum it up as: + +If the end of a statement looks like a regex literal (even if it isn’t), it +will be treated as one. Otherwise it should work as expected (if you write sane +code). + +### ES2018 ### + +ES2018 added some nice regex improvements to the language. + +- [Unicode property escapes] should allow telling names and invalid non-ASCII + characters apart without blowing up the regex size. +- [Lookbehind assertions] should allow matching telling division and regex + literals apart in more cases. +- [Named capture groups] might simplify some things. + +These things would be nice to do, but are not critical. They probably have to +wait until the oldest maintained Node.js LTS release supports those features. + +[Unicode property escapes]: http://2ality.com/2017/07/regexp-unicode-property-escapes.html +[Lookbehind assertions]: http://2ality.com/2017/05/regexp-lookbehind-assertions.html +[Named capture groups]: http://2ality.com/2017/05/regexp-named-capture-groups.html + + +License +======= + +[MIT](LICENSE). diff --git a/node_modules/js-tokens/index.js b/node_modules/js-tokens/index.js new file mode 100644 index 0000000..b23a4a0 --- /dev/null +++ b/node_modules/js-tokens/index.js @@ -0,0 +1,23 @@ +// Copyright 2014, 2015, 2016, 2017, 2018 Simon Lydell +// License: MIT. (See LICENSE.) + +Object.defineProperty(exports, "__esModule", { + value: true +}) + +// This regex comes from regex.coffee, and is inserted here by generate-index.js +// (run `npm run build`). +exports.default = /((['"])(?:(?!\2|\\).|\\(?:\r\n|[\s\S]))*(\2)?|`(?:[^`\\$]|\\[\s\S]|\$(?!\{)|\$\{(?:[^{}]|\{[^}]*\}?)*\}?)*(`)?)|(\/\/.*)|(\/\*(?:[^*]|\*(?!\/))*(\*\/)?)|(\/(?!\*)(?:\[(?:(?![\]\\]).|\\.)*\]|(?![\/\]\\]).|\\.)+\/(?:(?!\s*(?:\b|[\u0080-\uFFFF$\\'"~({]|[+\-!](?!=)|\.?\d))|[gmiyus]{1,6}\b(?![\u0080-\uFFFF$\\]|\s*(?:[+\-*%&|^<>!=?({]|\/(?![\/*])))))|(0[xX][\da-fA-F]+|0[oO][0-7]+|0[bB][01]+|(?:\d*\.\d+|\d+\.?)(?:[eE][+-]?\d+)?)|((?!\d)(?:(?!\s)[$\w\u0080-\uFFFF]|\\u[\da-fA-F]{4}|\\u\{[\da-fA-F]+\})+)|(--|\+\+|&&|\|\||=>|\.{3}|(?:[+\-\/%&|^]|\*{1,2}|<{1,2}|>{1,3}|!=?|={1,2})=?|[?~.,:;[\](){}])|(\s+)|(^$|[\s\S])/g + +exports.matchToToken = function(match) { + var token = {type: "invalid", value: match[0], closed: undefined} + if (match[ 1]) token.type = "string" , token.closed = !!(match[3] || match[4]) + else if (match[ 5]) token.type = "comment" + else if (match[ 6]) token.type = "comment", token.closed = !!match[7] + else if (match[ 8]) token.type = "regex" + else if (match[ 9]) token.type = "number" + else if (match[10]) token.type = "name" + else if (match[11]) token.type = "punctuator" + else if (match[12]) token.type = "whitespace" + return token +} diff --git a/node_modules/js-tokens/package.json b/node_modules/js-tokens/package.json new file mode 100644 index 0000000..ccdd38b --- /dev/null +++ b/node_modules/js-tokens/package.json @@ -0,0 +1,64 @@ +{ + "_from": "js-tokens@^3.0.0 || ^4.0.0", + "_id": "js-tokens@4.0.0", + "_inBundle": false, + "_integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "_location": "/js-tokens", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "js-tokens@^3.0.0 || ^4.0.0", + "name": "js-tokens", + "escapedName": "js-tokens", + "rawSpec": "^3.0.0 || ^4.0.0", + "saveSpec": null, + "fetchSpec": "^3.0.0 || ^4.0.0" + }, + "_requiredBy": [ + "/loose-envify" + ], + "_resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "_shasum": "19203fb59991df98e3a287050d4647cdeaf32499", + "_spec": "js-tokens@^3.0.0 || ^4.0.0", + "_where": "G:\\_comp_\\odsc\\orig\\AllNotes\\node_modules\\loose-envify", + "author": { + "name": "Simon Lydell" + }, + "bugs": { + "url": "https://github.com/lydell/js-tokens/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "A regex that tokenizes JavaScript.", + "devDependencies": { + "coffeescript": "2.1.1", + "esprima": "4.0.0", + "everything.js": "1.0.3", + "mocha": "5.0.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/lydell/js-tokens#readme", + "keywords": [ + "JavaScript", + "js", + "token", + "tokenize", + "regex" + ], + "license": "MIT", + "name": "js-tokens", + "repository": { + "type": "git", + "url": "git+https://github.com/lydell/js-tokens.git" + }, + "scripts": { + "build": "node generate-index.js", + "dev": "npm run build && npm test", + "esprima-compare": "node esprima-compare ./index.js everything.js/es5.js", + "test": "mocha --ui tdd" + }, + "version": "4.0.0" +} diff --git a/node_modules/loose-envify/LICENSE b/node_modules/loose-envify/LICENSE new file mode 100644 index 0000000..fbafb48 --- /dev/null +++ b/node_modules/loose-envify/LICENSE @@ -0,0 +1,21 @@ +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. diff --git a/node_modules/loose-envify/README.md b/node_modules/loose-envify/README.md new file mode 100644 index 0000000..7f4e07b --- /dev/null +++ b/node_modules/loose-envify/README.md @@ -0,0 +1,45 @@ +# loose-envify + +[![Build Status](https://travis-ci.org/zertosh/loose-envify.svg?branch=master)](https://travis-ci.org/zertosh/loose-envify) + +Fast (and loose) selective `process.env` replacer using [js-tokens](https://github.com/lydell/js-tokens) instead of an AST. Works just like [envify](https://github.com/hughsk/envify) but much faster. + +## Gotchas + +* Doesn't handle broken syntax. +* Doesn't look inside embedded expressions in template strings. + - **this won't work:** + ```js + console.log(`the current env is ${process.env.NODE_ENV}`); + ``` +* Doesn't replace oddly-spaced or oddly-commented expressions. + - **this won't work:** + ```js + console.log(process./*won't*/env./*work*/NODE_ENV); + ``` + +## Usage/Options + +loose-envify has the exact same interface as [envify](https://github.com/hughsk/envify), including the CLI. + +## Benchmark + +``` +envify: + + $ for i in {1..5}; do node bench/bench.js 'envify'; done + 708ms + 727ms + 791ms + 719ms + 720ms + +loose-envify: + + $ for i in {1..5}; do node bench/bench.js '../'; done + 51ms + 52ms + 52ms + 52ms + 52ms +``` diff --git a/node_modules/loose-envify/cli.js b/node_modules/loose-envify/cli.js new file mode 100644 index 0000000..c0b63cb --- /dev/null +++ b/node_modules/loose-envify/cli.js @@ -0,0 +1,16 @@ +#!/usr/bin/env node +'use strict'; + +var looseEnvify = require('./'); +var fs = require('fs'); + +if (process.argv[2]) { + fs.createReadStream(process.argv[2], {encoding: 'utf8'}) + .pipe(looseEnvify(process.argv[2])) + .pipe(process.stdout); +} else { + process.stdin.resume() + process.stdin + .pipe(looseEnvify(__filename)) + .pipe(process.stdout); +} diff --git a/node_modules/loose-envify/custom.js b/node_modules/loose-envify/custom.js new file mode 100644 index 0000000..6389bfa --- /dev/null +++ b/node_modules/loose-envify/custom.js @@ -0,0 +1,4 @@ +// envify compatibility +'use strict'; + +module.exports = require('./loose-envify'); diff --git a/node_modules/loose-envify/index.js b/node_modules/loose-envify/index.js new file mode 100644 index 0000000..8cd8305 --- /dev/null +++ b/node_modules/loose-envify/index.js @@ -0,0 +1,3 @@ +'use strict'; + +module.exports = require('./loose-envify')(process.env); diff --git a/node_modules/loose-envify/loose-envify.js b/node_modules/loose-envify/loose-envify.js new file mode 100644 index 0000000..b5a5be2 --- /dev/null +++ b/node_modules/loose-envify/loose-envify.js @@ -0,0 +1,36 @@ +'use strict'; + +var stream = require('stream'); +var util = require('util'); +var replace = require('./replace'); + +var jsonExtRe = /\.json$/; + +module.exports = function(rootEnv) { + rootEnv = rootEnv || process.env; + return function (file, trOpts) { + if (jsonExtRe.test(file)) { + return stream.PassThrough(); + } + var envs = trOpts ? [rootEnv, trOpts] : [rootEnv]; + return new LooseEnvify(envs); + }; +}; + +function LooseEnvify(envs) { + stream.Transform.call(this); + this._data = ''; + this._envs = envs; +} +util.inherits(LooseEnvify, stream.Transform); + +LooseEnvify.prototype._transform = function(buf, enc, cb) { + this._data += buf; + cb(); +}; + +LooseEnvify.prototype._flush = function(cb) { + var replaced = replace(this._data, this._envs); + this.push(replaced); + cb(); +}; diff --git a/node_modules/loose-envify/package.json b/node_modules/loose-envify/package.json new file mode 100644 index 0000000..d13706e --- /dev/null +++ b/node_modules/loose-envify/package.json @@ -0,0 +1,70 @@ +{ + "_from": "loose-envify@^1.3.1", + "_id": "loose-envify@1.4.0", + "_inBundle": false, + "_integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "_location": "/loose-envify", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "loose-envify@^1.3.1", + "name": "loose-envify", + "escapedName": "loose-envify", + "rawSpec": "^1.3.1", + "saveSpec": null, + "fetchSpec": "^1.3.1" + }, + "_requiredBy": [ + "/history", + "/prop-types", + "/react-router", + "/react-router-dom" + ], + "_resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "_shasum": "71ee51fa7be4caec1a63839f7e682d8132d30caf", + "_spec": "loose-envify@^1.3.1", + "_where": "G:\\_comp_\\odsc\\orig\\AllNotes\\node_modules\\react-router-dom", + "author": { + "name": "Andres Suarez", + "email": "zertosh@gmail.com" + }, + "bin": { + "loose-envify": "cli.js" + }, + "bugs": { + "url": "https://github.com/zertosh/loose-envify/issues" + }, + "bundleDependencies": false, + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "deprecated": false, + "description": "Fast (and loose) selective `process.env` replacer using js-tokens instead of an AST", + "devDependencies": { + "browserify": "^13.1.1", + "envify": "^3.4.0", + "tap": "^8.0.0" + }, + "homepage": "https://github.com/zertosh/loose-envify", + "keywords": [ + "environment", + "variables", + "browserify", + "browserify-transform", + "transform", + "source", + "configuration" + ], + "license": "MIT", + "main": "index.js", + "name": "loose-envify", + "repository": { + "type": "git", + "url": "git://github.com/zertosh/loose-envify.git" + }, + "scripts": { + "test": "tap test/*.js" + }, + "version": "1.4.0" +} diff --git a/node_modules/loose-envify/replace.js b/node_modules/loose-envify/replace.js new file mode 100644 index 0000000..ec15e81 --- /dev/null +++ b/node_modules/loose-envify/replace.js @@ -0,0 +1,65 @@ +'use strict'; + +var jsTokens = require('js-tokens').default; + +var processEnvRe = /\bprocess\.env\.[_$a-zA-Z][$\w]+\b/; +var spaceOrCommentRe = /^(?:\s|\/[/*])/; + +function replace(src, envs) { + if (!processEnvRe.test(src)) { + return src; + } + + var out = []; + var purge = envs.some(function(env) { + return env._ && env._.indexOf('purge') !== -1; + }); + + jsTokens.lastIndex = 0 + var parts = src.match(jsTokens); + + for (var i = 0; i < parts.length; i++) { + if (parts[i ] === 'process' && + parts[i + 1] === '.' && + parts[i + 2] === 'env' && + parts[i + 3] === '.') { + var prevCodeToken = getAdjacentCodeToken(-1, parts, i); + var nextCodeToken = getAdjacentCodeToken(1, parts, i + 4); + var replacement = getReplacementString(envs, parts[i + 4], purge); + if (prevCodeToken !== '.' && + nextCodeToken !== '.' && + nextCodeToken !== '=' && + typeof replacement === 'string') { + out.push(replacement); + i += 4; + continue; + } + } + out.push(parts[i]); + } + + return out.join(''); +} + +function getAdjacentCodeToken(dir, parts, i) { + while (true) { + var part = parts[i += dir]; + if (!spaceOrCommentRe.test(part)) { + return part; + } + } +} + +function getReplacementString(envs, name, purge) { + for (var j = 0; j < envs.length; j++) { + var env = envs[j]; + if (typeof env[name] !== 'undefined') { + return JSON.stringify(env[name]); + } + } + if (purge) { + return 'undefined'; + } +} + +module.exports = replace; diff --git a/node_modules/mini-create-react-context/LICENSE b/node_modules/mini-create-react-context/LICENSE new file mode 100644 index 0000000..4cfe190 --- /dev/null +++ b/node_modules/mini-create-react-context/LICENSE @@ -0,0 +1,21 @@ +Copyright (c) 2019-present StringEpsilon + +Copyright (c) 2017-2019 James Kyle + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/mini-create-react-context/README.md b/node_modules/mini-create-react-context/README.md new file mode 100644 index 0000000..2b4c2a2 --- /dev/null +++ b/node_modules/mini-create-react-context/README.md @@ -0,0 +1,124 @@ +# mini-create-react-context + +

+ + npm install size + + + npm bundle size + + + npm + +

+ +> (A smaller) Polyfill for the [React context API](https://github.com/reactjs/rfcs/pull/2) + +## Install + +```sh +npm install mini-create-react-context +``` + +You'll need to also have `react` and `prop-types` installed. + +## API + +```js +const Context = createReactContext(defaultValue); +/* + + {children} + + + ... + + + {value => children} + +*/ +``` + +## Example + +```js +// @flow +import React, { type Node } from 'react'; +import createReactContext, { type Context } from 'mini-create-react-context'; + +type Theme = 'light' | 'dark'; +// Pass a default theme to ensure type correctness +const ThemeContext: Context = createReactContext('light'); + +class ThemeToggler extends React.Component< + { children: Node }, + { theme: Theme } +> { + state = { theme: 'light' }; + render() { + return ( + // Pass the current context value to the Provider's `value` prop. + // Changes are detected using strict comparison (Object.is) + + + {this.props.children} + + ); + } +} + +class Title extends React.Component<{ children: Node }> { + render() { + return ( + // The Consumer uses a render prop API. Avoids conflicts in the + // props namespace. + + {theme => ( +

+ {this.props.children} +

+ )} +
+ ); + } +} +``` + +## Compatibility + +This package only "ponyfills" the `React.createContext` API, not other unrelated React 16+ APIs. If you are using a version of React <16, keep in mind that you can only use features available in that version. + +For example, you cannot pass children types aren't valid pre React 16: + +```js + +
+
+ +``` + +It will throw `A valid React element (or null) must be returned. You may have returned undefined, an array or some other invalid object.` because `` can only receive a single child element. To fix the error just wrap everyting in a single `
`: + +```js + +
+
+
+
+ +``` + +## Size difference to the original: +| | original | **mini** +|------------|----------|----- +|install size| [**50 kB**](https://packagephobia.now.sh/result?p=create-react-context) | [140 kB](https://packagephobia.now.sh/result?p=mini-create-react-context) +|minified | [3.3 kB](https://bundlephobia.com/result?p=create-react-context) | [**2.3kB**](https://bundlephobia.com/result?p=mini-create-react-context) +|minzip | 1.3 kB | **1.0kB** diff --git a/node_modules/mini-create-react-context/dist/cjs/index.js b/node_modules/mini-create-react-context/dist/cjs/index.js new file mode 100644 index 0000000..46e99ed --- /dev/null +++ b/node_modules/mini-create-react-context/dist/cjs/index.js @@ -0,0 +1,167 @@ +'use strict';var React=require('react'),_inheritsLoose=require('@babel/runtime/helpers/inheritsLoose'),PropTypes=require('prop-types'),warning=require('tiny-warning');function _interopDefaultLegacy(e){return e&&typeof e==='object'&&'default'in e?e:{'default':e}}var React__default=/*#__PURE__*/_interopDefaultLegacy(React);var _inheritsLoose__default=/*#__PURE__*/_interopDefaultLegacy(_inheritsLoose);var PropTypes__default=/*#__PURE__*/_interopDefaultLegacy(PropTypes);var warning__default=/*#__PURE__*/_interopDefaultLegacy(warning);var MAX_SIGNED_31_BIT_INT = 1073741823; +var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {}; + +function getUniqueId() { + var key = '__global_unique_id__'; + return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1; +} + +function objectIs(x, y) { + if (x === y) { + return x !== 0 || 1 / x === 1 / y; + } else { + return x !== x && y !== y; + } +} + +function createEventEmitter(value) { + var handlers = []; + return { + on: function on(handler) { + handlers.push(handler); + }, + off: function off(handler) { + handlers = handlers.filter(function (h) { + return h !== handler; + }); + }, + get: function get() { + return value; + }, + set: function set(newValue, changedBits) { + value = newValue; + handlers.forEach(function (handler) { + return handler(value, changedBits); + }); + } + }; +} + +function onlyChild(children) { + return Array.isArray(children) ? children[0] : children; +} + +function createReactContext(defaultValue, calculateChangedBits) { + var _Provider$childContex, _Consumer$contextType; + + var contextProp = '__create-react-context-' + getUniqueId() + '__'; + + var Provider = /*#__PURE__*/function (_Component) { + _inheritsLoose__default['default'](Provider, _Component); + + function Provider() { + var _this; + + _this = _Component.apply(this, arguments) || this; + _this.emitter = createEventEmitter(_this.props.value); + return _this; + } + + var _proto = Provider.prototype; + + _proto.getChildContext = function getChildContext() { + var _ref; + + return _ref = {}, _ref[contextProp] = this.emitter, _ref; + }; + + _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { + if (this.props.value !== nextProps.value) { + var oldValue = this.props.value; + var newValue = nextProps.value; + var changedBits; + + if (objectIs(oldValue, newValue)) { + changedBits = 0; + } else { + changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT; + + if (process.env.NODE_ENV !== 'production') { + warning__default['default']((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: ' + changedBits); + } + + changedBits |= 0; + + if (changedBits !== 0) { + this.emitter.set(nextProps.value, changedBits); + } + } + } + }; + + _proto.render = function render() { + return this.props.children; + }; + + return Provider; + }(React.Component); + + Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes__default['default'].object.isRequired, _Provider$childContex); + + var Consumer = /*#__PURE__*/function (_Component2) { + _inheritsLoose__default['default'](Consumer, _Component2); + + function Consumer() { + var _this2; + + _this2 = _Component2.apply(this, arguments) || this; + _this2.state = { + value: _this2.getValue() + }; + + _this2.onUpdate = function (newValue, changedBits) { + var observedBits = _this2.observedBits | 0; + + if ((observedBits & changedBits) !== 0) { + _this2.setState({ + value: _this2.getValue() + }); + } + }; + + return _this2; + } + + var _proto2 = Consumer.prototype; + + _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { + var observedBits = nextProps.observedBits; + this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits; + }; + + _proto2.componentDidMount = function componentDidMount() { + if (this.context[contextProp]) { + this.context[contextProp].on(this.onUpdate); + } + + var observedBits = this.props.observedBits; + this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits; + }; + + _proto2.componentWillUnmount = function componentWillUnmount() { + if (this.context[contextProp]) { + this.context[contextProp].off(this.onUpdate); + } + }; + + _proto2.getValue = function getValue() { + if (this.context[contextProp]) { + return this.context[contextProp].get(); + } else { + return defaultValue; + } + }; + + _proto2.render = function render() { + return onlyChild(this.props.children)(this.state.value); + }; + + return Consumer; + }(React.Component); + + Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = PropTypes__default['default'].object, _Consumer$contextType); + return { + Provider: Provider, + Consumer: Consumer + }; +}var index = React__default['default'].createContext || createReactContext;module.exports=index; \ No newline at end of file diff --git a/node_modules/mini-create-react-context/dist/cjs/index.min.js b/node_modules/mini-create-react-context/dist/cjs/index.min.js new file mode 100644 index 0000000..d939b81 --- /dev/null +++ b/node_modules/mini-create-react-context/dist/cjs/index.min.js @@ -0,0 +1 @@ +"use strict";var t=require("react"),e=require("@babel/runtime/helpers/inheritsLoose"),n=require("prop-types"),r=require("tiny-warning");function o(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var i=o(t),u=o(e),a=o(n),s=o(r),c="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{};function l(t){var e=[];return{on:function(t){e.push(t)},off:function(t){e=e.filter((function(e){return e!==t}))},get:function(){return t},set:function(n,r){t=n,e.forEach((function(e){return e(t,r)}))}}}var p=i.default.createContext||function(e,n){var r,o,i,p="__create-react-context-"+((c[i="__global_unique_id__"]=(c[i]||0)+1)+"__"),f=function(t){function e(){var e;return(e=t.apply(this,arguments)||this).emitter=l(e.props.value),e}u.default(e,t);var r=e.prototype;return r.getChildContext=function(){var t;return(t={})[p]=this.emitter,t},r.componentWillReceiveProps=function(t){if(this.props.value!==t.value){var e,r=this.props.value,o=t.value;((i=r)===(u=o)?0!==i||1/i==1/u:i!=i&&u!=u)?e=0:(e="function"==typeof n?n(r,o):1073741823,"production"!==process.env.NODE_ENV&&s.default((1073741823&e)===e,"calculateChangedBits: Expected the return value to be a 31-bit integer. Instead received: "+e),0!==(e|=0)&&this.emitter.set(t.value,e))}var i,u},r.render=function(){return this.props.children},e}(t.Component);f.childContextTypes=((r={})[p]=a.default.object.isRequired,r);var d=function(t){function n(){var e;return(e=t.apply(this,arguments)||this).state={value:e.getValue()},e.onUpdate=function(t,n){0!=((0|e.observedBits)&n)&&e.setState({value:e.getValue()})},e}u.default(n,t);var r=n.prototype;return r.componentWillReceiveProps=function(t){var e=t.observedBits;this.observedBits=null==e?1073741823:e},r.componentDidMount=function(){this.context[p]&&this.context[p].on(this.onUpdate);var t=this.props.observedBits;this.observedBits=null==t?1073741823:t},r.componentWillUnmount=function(){this.context[p]&&this.context[p].off(this.onUpdate)},r.getValue=function(){return this.context[p]?this.context[p].get():e},r.render=function(){return(t=this.props.children,Array.isArray(t)?t[0]:t)(this.state.value);var t},n}(t.Component);return d.contextTypes=((o={})[p]=a.default.object,o),{Provider:f,Consumer:d}};module.exports=p; \ No newline at end of file diff --git a/node_modules/mini-create-react-context/dist/esm/index.js b/node_modules/mini-create-react-context/dist/esm/index.js new file mode 100644 index 0000000..c93d55e --- /dev/null +++ b/node_modules/mini-create-react-context/dist/esm/index.js @@ -0,0 +1,176 @@ +import React, { Component } from 'react'; +import _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose'; +import PropTypes from 'prop-types'; +import warning from 'tiny-warning'; + +var MAX_SIGNED_31_BIT_INT = 1073741823; +var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {}; + +function getUniqueId() { + var key = '__global_unique_id__'; + return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1; +} + +function objectIs(x, y) { + if (x === y) { + return x !== 0 || 1 / x === 1 / y; + } else { + return x !== x && y !== y; + } +} + +function createEventEmitter(value) { + var handlers = []; + return { + on: function on(handler) { + handlers.push(handler); + }, + off: function off(handler) { + handlers = handlers.filter(function (h) { + return h !== handler; + }); + }, + get: function get() { + return value; + }, + set: function set(newValue, changedBits) { + value = newValue; + handlers.forEach(function (handler) { + return handler(value, changedBits); + }); + } + }; +} + +function onlyChild(children) { + return Array.isArray(children) ? children[0] : children; +} + +function createReactContext(defaultValue, calculateChangedBits) { + var _Provider$childContex, _Consumer$contextType; + + var contextProp = '__create-react-context-' + getUniqueId() + '__'; + + var Provider = /*#__PURE__*/function (_Component) { + _inheritsLoose(Provider, _Component); + + function Provider() { + var _this; + + _this = _Component.apply(this, arguments) || this; + _this.emitter = createEventEmitter(_this.props.value); + return _this; + } + + var _proto = Provider.prototype; + + _proto.getChildContext = function getChildContext() { + var _ref; + + return _ref = {}, _ref[contextProp] = this.emitter, _ref; + }; + + _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { + if (this.props.value !== nextProps.value) { + var oldValue = this.props.value; + var newValue = nextProps.value; + var changedBits; + + if (objectIs(oldValue, newValue)) { + changedBits = 0; + } else { + changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT; + + if (process.env.NODE_ENV !== 'production') { + warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: ' + changedBits); + } + + changedBits |= 0; + + if (changedBits !== 0) { + this.emitter.set(nextProps.value, changedBits); + } + } + } + }; + + _proto.render = function render() { + return this.props.children; + }; + + return Provider; + }(Component); + + Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes.object.isRequired, _Provider$childContex); + + var Consumer = /*#__PURE__*/function (_Component2) { + _inheritsLoose(Consumer, _Component2); + + function Consumer() { + var _this2; + + _this2 = _Component2.apply(this, arguments) || this; + _this2.state = { + value: _this2.getValue() + }; + + _this2.onUpdate = function (newValue, changedBits) { + var observedBits = _this2.observedBits | 0; + + if ((observedBits & changedBits) !== 0) { + _this2.setState({ + value: _this2.getValue() + }); + } + }; + + return _this2; + } + + var _proto2 = Consumer.prototype; + + _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { + var observedBits = nextProps.observedBits; + this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits; + }; + + _proto2.componentDidMount = function componentDidMount() { + if (this.context[contextProp]) { + this.context[contextProp].on(this.onUpdate); + } + + var observedBits = this.props.observedBits; + this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits; + }; + + _proto2.componentWillUnmount = function componentWillUnmount() { + if (this.context[contextProp]) { + this.context[contextProp].off(this.onUpdate); + } + }; + + _proto2.getValue = function getValue() { + if (this.context[contextProp]) { + return this.context[contextProp].get(); + } else { + return defaultValue; + } + }; + + _proto2.render = function render() { + return onlyChild(this.props.children)(this.state.value); + }; + + return Consumer; + }(Component); + + Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = PropTypes.object, _Consumer$contextType); + return { + Provider: Provider, + Consumer: Consumer + }; +} + +var index = React.createContext || createReactContext; + +export default index; diff --git a/node_modules/mini-create-react-context/dist/index.d.ts b/node_modules/mini-create-react-context/dist/index.d.ts new file mode 100644 index 0000000..034d9c7 --- /dev/null +++ b/node_modules/mini-create-react-context/dist/index.d.ts @@ -0,0 +1,24 @@ +import * as React from 'react'; + +export default function createReactContext( + defaultValue: T, + calculateChangedBits?: (prev: T, next: T) => number +): Context; + +type RenderFn = (value: T) => React.ReactNode; + +export type Context = { + Provider: React.ComponentClass>; + Consumer: React.ComponentClass>; +}; + +export type ProviderProps = { + value: T; + children?: React.ReactNode; + observedBits?: any, +}; + +export type ConsumerProps = { + children: RenderFn | [RenderFn]; + observedBits?: number; +}; diff --git a/node_modules/mini-create-react-context/package.json b/node_modules/mini-create-react-context/package.json new file mode 100644 index 0000000..58d492f --- /dev/null +++ b/node_modules/mini-create-react-context/package.json @@ -0,0 +1,98 @@ +{ + "_from": "mini-create-react-context@^0.4.0", + "_id": "mini-create-react-context@0.4.1", + "_inBundle": false, + "_integrity": "sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ==", + "_location": "/mini-create-react-context", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "mini-create-react-context@^0.4.0", + "name": "mini-create-react-context", + "escapedName": "mini-create-react-context", + "rawSpec": "^0.4.0", + "saveSpec": null, + "fetchSpec": "^0.4.0" + }, + "_requiredBy": [ + "/react-router" + ], + "_resolved": "https://registry.npmjs.org/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz", + "_shasum": "072171561bfdc922da08a60c2197a497cc2d1d5e", + "_spec": "mini-create-react-context@^0.4.0", + "_where": "G:\\_comp_\\odsc\\orig\\AllNotes\\node_modules\\react-router", + "author": { + "name": "StringEpsilon" + }, + "bugs": { + "url": "https://github.com/StringEpsilon/mini-create-react-context/issues" + }, + "bundleDependencies": false, + "dependencies": { + "@babel/runtime": "^7.12.1", + "tiny-warning": "^1.0.3" + }, + "deprecated": false, + "description": "Smaller Polyfill for the proposed React context API", + "devDependencies": { + "@babel/core": "^7.12.3", + "@babel/plugin-proposal-class-properties": "^7.12.1", + "@babel/preset-env": "^7.12.1", + "@babel/preset-react": "^7.12.1", + "@babel/preset-typescript": "^7.12.1", + "@types/enzyme": "^3.10.5", + "@types/jest": "^26.0.10", + "@types/react": "^16.9.46", + "@wessberg/rollup-plugin-ts": "^1.3.6", + "babel-jest": "^25.5.1", + "enzyme": "^3.11.0", + "enzyme-adapter-react-16": "^1.15.5", + "enzyme-to-json": "^3.6.1", + "jest": "^26.6.0", + "prop-types": "^15.6.0", + "raf": "^3.4.1", + "react": "^16.13.1", + "react-dom": "^16.13.1", + "rollup": "^2.32.1", + "rollup-plugin-commonjs": "^10.0.1", + "rollup-plugin-node-resolve": "^5.2.0", + "rollup-plugin-terser": "^7.0.2", + "typescript": "^4.0.3" + }, + "files": [ + "dist/**" + ], + "homepage": "https://github.com/StringEpsilon/mini-create-react-context#readme", + "jest": { + "snapshotSerializers": [ + "enzyme-to-json/serializer" + ] + }, + "keywords": [ + "react", + "context", + "contextTypes", + "polyfill", + "ponyfill" + ], + "license": "MIT", + "main": "dist/cjs/index.js", + "module": "dist/esm/index.js", + "name": "mini-create-react-context", + "peerDependencies": { + "prop-types": "^15.0.0", + "react": "^0.14.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/StringEpsilon/mini-create-react-context.git" + }, + "scripts": { + "build": "rollup -c rollup.config.js", + "prepublish": "npm run build", + "test": "jest" + }, + "types": "dist/index.d.ts", + "version": "0.4.1" +} diff --git a/node_modules/object-assign/index.js b/node_modules/object-assign/index.js new file mode 100644 index 0000000..0930cf8 --- /dev/null +++ b/node_modules/object-assign/index.js @@ -0,0 +1,90 @@ +/* +object-assign +(c) Sindre Sorhus +@license MIT +*/ + +'use strict'; +/* eslint-disable no-unused-vars */ +var getOwnPropertySymbols = Object.getOwnPropertySymbols; +var hasOwnProperty = Object.prototype.hasOwnProperty; +var propIsEnumerable = Object.prototype.propertyIsEnumerable; + +function toObject(val) { + if (val === null || val === undefined) { + throw new TypeError('Object.assign cannot be called with null or undefined'); + } + + return Object(val); +} + +function shouldUseNative() { + try { + if (!Object.assign) { + return false; + } + + // Detect buggy property enumeration order in older V8 versions. + + // https://bugs.chromium.org/p/v8/issues/detail?id=4118 + var test1 = new String('abc'); // eslint-disable-line no-new-wrappers + test1[5] = 'de'; + if (Object.getOwnPropertyNames(test1)[0] === '5') { + return false; + } + + // https://bugs.chromium.org/p/v8/issues/detail?id=3056 + var test2 = {}; + for (var i = 0; i < 10; i++) { + test2['_' + String.fromCharCode(i)] = i; + } + var order2 = Object.getOwnPropertyNames(test2).map(function (n) { + return test2[n]; + }); + if (order2.join('') !== '0123456789') { + return false; + } + + // https://bugs.chromium.org/p/v8/issues/detail?id=3056 + var test3 = {}; + 'abcdefghijklmnopqrst'.split('').forEach(function (letter) { + test3[letter] = letter; + }); + if (Object.keys(Object.assign({}, test3)).join('') !== + 'abcdefghijklmnopqrst') { + return false; + } + + return true; + } catch (err) { + // We don't expect any of the above to throw, but better to be safe. + return false; + } +} + +module.exports = shouldUseNative() ? Object.assign : function (target, source) { + var from; + var to = toObject(target); + var symbols; + + for (var s = 1; s < arguments.length; s++) { + from = Object(arguments[s]); + + for (var key in from) { + if (hasOwnProperty.call(from, key)) { + to[key] = from[key]; + } + } + + if (getOwnPropertySymbols) { + symbols = getOwnPropertySymbols(from); + for (var i = 0; i < symbols.length; i++) { + if (propIsEnumerable.call(from, symbols[i])) { + to[symbols[i]] = from[symbols[i]]; + } + } + } + } + + return to; +}; diff --git a/node_modules/object-assign/license b/node_modules/object-assign/license new file mode 100644 index 0000000..654d0bf --- /dev/null +++ b/node_modules/object-assign/license @@ -0,0 +1,21 @@ +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. diff --git a/node_modules/object-assign/package.json b/node_modules/object-assign/package.json new file mode 100644 index 0000000..385746a --- /dev/null +++ b/node_modules/object-assign/package.json @@ -0,0 +1,74 @@ +{ + "_from": "object-assign@^4.1.1", + "_id": "object-assign@4.1.1", + "_inBundle": false, + "_integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "_location": "/object-assign", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "object-assign@^4.1.1", + "name": "object-assign", + "escapedName": "object-assign", + "rawSpec": "^4.1.1", + "saveSpec": null, + "fetchSpec": "^4.1.1" + }, + "_requiredBy": [ + "/prop-types" + ], + "_resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "_shasum": "2109adc7965887cfc05cbbd442cac8bfbb360863", + "_spec": "object-assign@^4.1.1", + "_where": "G:\\_comp_\\odsc\\orig\\AllNotes\\node_modules\\prop-types", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "sindresorhus.com" + }, + "bugs": { + "url": "https://github.com/sindresorhus/object-assign/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "ES2015 `Object.assign()` ponyfill", + "devDependencies": { + "ava": "^0.16.0", + "lodash": "^4.16.4", + "matcha": "^0.7.0", + "xo": "^0.16.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "files": [ + "index.js" + ], + "homepage": "https://github.com/sindresorhus/object-assign#readme", + "keywords": [ + "object", + "assign", + "extend", + "properties", + "es2015", + "ecmascript", + "harmony", + "ponyfill", + "prollyfill", + "polyfill", + "shim", + "browser" + ], + "license": "MIT", + "name": "object-assign", + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/object-assign.git" + }, + "scripts": { + "bench": "matcha bench.js", + "test": "xo && ava" + }, + "version": "4.1.1" +} diff --git a/node_modules/object-assign/readme.md b/node_modules/object-assign/readme.md new file mode 100644 index 0000000..1be09d3 --- /dev/null +++ b/node_modules/object-assign/readme.md @@ -0,0 +1,61 @@ +# object-assign [![Build Status](https://travis-ci.org/sindresorhus/object-assign.svg?branch=master)](https://travis-ci.org/sindresorhus/object-assign) + +> ES2015 [`Object.assign()`](http://www.2ality.com/2014/01/object-assign.html) [ponyfill](https://ponyfill.com) + + +## Use the built-in + +Node.js 4 and up, as well as every evergreen browser (Chrome, Edge, Firefox, Opera, Safari), +support `Object.assign()` :tada:. If you target only those environments, then by all +means, use `Object.assign()` instead of this package. + + +## Install + +``` +$ npm install --save object-assign +``` + + +## Usage + +```js +const objectAssign = require('object-assign'); + +objectAssign({foo: 0}, {bar: 1}); +//=> {foo: 0, bar: 1} + +// multiple sources +objectAssign({foo: 0}, {bar: 1}, {baz: 2}); +//=> {foo: 0, bar: 1, baz: 2} + +// overwrites equal keys +objectAssign({foo: 0}, {foo: 1}, {foo: 2}); +//=> {foo: 2} + +// ignores null and undefined sources +objectAssign({foo: 0}, null, {bar: 1}, undefined); +//=> {foo: 0, bar: 1} +``` + + +## API + +### objectAssign(target, [source, ...]) + +Assigns enumerable own properties of `source` objects to the `target` object and returns the `target` object. Additional `source` objects will overwrite previous ones. + + +## Resources + +- [ES2015 spec - Object.assign](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.assign) + + +## Related + +- [deep-assign](https://github.com/sindresorhus/deep-assign) - Recursive `Object.assign()` + + +## License + +MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/node_modules/path-to-regexp/History.md b/node_modules/path-to-regexp/History.md new file mode 100644 index 0000000..abe4a65 --- /dev/null +++ b/node_modules/path-to-regexp/History.md @@ -0,0 +1,158 @@ +1.7.0 / 2016-11-08 +================== + + * Allow a `delimiter` option to be passed in with `tokensToRegExp` which will be used for "non-ending" token match situations + +1.6.0 / 2016-10-03 +================== + + * Populate `RegExp.keys` when using the `tokensToRegExp` method (making it consistent with the main export) + * Allow a `delimiter` option to be passed in with `parse` + * Updated TypeScript definition with `Keys` and `Options` updated + +1.5.3 / 2016-06-15 +================== + + * Add `\\` to the ignore character group to avoid backtracking on mismatched parens + +1.5.2 / 2016-06-15 +================== + + * Escape `\\` in string segments of regexp + +1.5.1 / 2016-06-08 +================== + + * Add `index.d.ts` to NPM package + +1.5.0 / 2016-05-20 +================== + + * Handle partial token segments (better) + * Allow compile to handle asterisk token segments + +1.4.0 / 2016-05-18 +================== + + * Handle RegExp unions in path matching groups + +1.3.0 / 2016-05-08 +================== + + * Clarify README language and named parameter token support + * Support advanced Closure Compiler with type annotations + * Add pretty paths options to compiled function output + * Add TypeScript definition to project + * Improved prefix handling with non-complete segment parameters (E.g. `/:foo?-bar`) + +1.2.1 / 2015-08-17 +================== + + * Encode values before validation with path compilation function + * More examples of using compilation in README + +1.2.0 / 2015-05-20 +================== + + * Add support for matching an asterisk (`*`) as an unnamed match everything group (`(.*)`) + +1.1.1 / 2015-05-11 +================== + + * Expose methods for working with path tokens + +1.1.0 / 2015-05-09 +================== + + * Expose the parser implementation to consumers + * Implement a compiler function to generate valid strings + * Huge refactor of tests to be more DRY and cover new parse and compile functions + * Use chai in tests + * Add .editorconfig + +1.0.3 / 2015-01-17 +================== + + * Optimised function runtime + * Added `files` to `package.json` + +1.0.2 / 2014-12-17 +================== + + * Use `Array.isArray` shim + * Remove ES5 incompatible code + * Fixed repository path + * Added new readme badges + +1.0.1 / 2014-08-27 +================== + + * Ensure installation works correctly on 0.8 + +1.0.0 / 2014-08-17 +================== + + * No more API changes + +0.2.5 / 2014-08-07 +================== + + * Allow keys parameter to be omitted + +0.2.4 / 2014-08-02 +================== + + * Code coverage badge + * Updated readme + * Attach keys to the generated regexp + +0.2.3 / 2014-07-09 +================== + + * Add MIT license + +0.2.2 / 2014-07-06 +================== + + * A passed in trailing slash in non-strict mode will become optional + * In non-end mode, the optional trailing slash will only match at the end + +0.2.1 / 2014-06-11 +================== + + * Fixed a major capturing group regexp regression + +0.2.0 / 2014-06-09 +================== + + * Improved support for arrays + * Improved support for regexps + * Better support for non-ending strict mode matches with a trailing slash + * Travis CI support + * Block using regexp special characters in the path + * Removed support for the asterisk to match all + * New support for parameter suffixes - `*`, `+` and `?` + * Updated readme + * Provide delimiter information with keys array + +0.1.2 / 2014-03-10 +================== + + * Move testing dependencies to `devDependencies` + +0.1.1 / 2014-03-10 +================== + + * Match entire substring with `options.end` + * Properly handle ending and non-ending matches + +0.1.0 / 2014-03-06 +================== + + * Add `options.end` + +0.0.2 / 2013-02-10 +================== + + * Update to match current express + * Add .license property to component.json diff --git a/node_modules/path-to-regexp/LICENSE b/node_modules/path-to-regexp/LICENSE new file mode 100644 index 0000000..983fbe8 --- /dev/null +++ b/node_modules/path-to-regexp/LICENSE @@ -0,0 +1,21 @@ +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. diff --git a/node_modules/path-to-regexp/Readme.md b/node_modules/path-to-regexp/Readme.md new file mode 100644 index 0000000..379ecf4 --- /dev/null +++ b/node_modules/path-to-regexp/Readme.md @@ -0,0 +1,257 @@ +# Path-to-RegExp + +> Turn an Express-style path string such as `/user/:name` into a regular expression. + +[![NPM version][npm-image]][npm-url] +[![Build status][travis-image]][travis-url] +[![Test coverage][coveralls-image]][coveralls-url] +[![Dependency Status][david-image]][david-url] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +## Installation + +``` +npm install path-to-regexp --save +``` + +## Usage + +```javascript +var pathToRegexp = require('path-to-regexp') + +// pathToRegexp(path, keys, options) +// pathToRegexp.parse(path) +// pathToRegexp.compile(path) +``` + +- **path** An Express-style string, an array of strings, or a regular expression. +- **keys** An array to be populated with the keys found in the path. +- **options** + - **sensitive** When `true` the route will be case sensitive. (default: `false`) + - **strict** When `false` the trailing slash is optional. (default: `false`) + - **end** When `false` the path will match at the beginning. (default: `true`) + - **delimiter** Set the default delimiter for repeat parameters. (default: `'/'`) + +```javascript +var keys = [] +var re = pathToRegexp('/foo/:bar', keys) +// re = /^\/foo\/([^\/]+?)\/?$/i +// keys = [{ name: 'bar', prefix: '/', delimiter: '/', optional: false, repeat: false, pattern: '[^\\/]+?' }] +``` + +**Please note:** The `RegExp` returned by `path-to-regexp` is intended for use with pathnames or hostnames. It can not handle the query strings or fragments of a URL. + +### Parameters + +The path string can be used to define parameters and populate the keys. + +#### Named Parameters + +Named parameters are defined by prefixing a colon to the parameter name (`:foo`). By default, the parameter will match until the following path segment. + +```js +var re = pathToRegexp('/:foo/:bar', keys) +// keys = [{ name: 'foo', prefix: '/', ... }, { name: 'bar', prefix: '/', ... }] + +re.exec('/test/route') +//=> ['/test/route', 'test', 'route'] +``` + +**Please note:** Named parameters must be made up of "word characters" (`[A-Za-z0-9_]`). + +```js +var re = pathToRegexp('/(apple-)?icon-:res(\\d+).png', keys) +// keys = [{ name: 0, prefix: '/', ... }, { name: 'res', prefix: '', ... }] + +re.exec('/icon-76.png') +//=> ['/icon-76.png', undefined, '76'] +``` + +#### Modified Parameters + +##### Optional + +Parameters can be suffixed with a question mark (`?`) to make the parameter optional. This will also make the prefix optional. + +```js +var re = pathToRegexp('/:foo/:bar?', keys) +// keys = [{ name: 'foo', ... }, { name: 'bar', delimiter: '/', optional: true, repeat: false }] + +re.exec('/test') +//=> ['/test', 'test', undefined] + +re.exec('/test/route') +//=> ['/test', 'test', 'route'] +``` + +##### Zero or more + +Parameters can be suffixed with an asterisk (`*`) to denote a zero or more parameter matches. The prefix is taken into account for each match. + +```js +var re = pathToRegexp('/:foo*', keys) +// keys = [{ name: 'foo', delimiter: '/', optional: true, repeat: true }] + +re.exec('/') +//=> ['/', undefined] + +re.exec('/bar/baz') +//=> ['/bar/baz', 'bar/baz'] +``` + +##### One or more + +Parameters can be suffixed with a plus sign (`+`) to denote a one or more parameter matches. The prefix is taken into account for each match. + +```js +var re = pathToRegexp('/:foo+', keys) +// keys = [{ name: 'foo', delimiter: '/', optional: false, repeat: true }] + +re.exec('/') +//=> null + +re.exec('/bar/baz') +//=> ['/bar/baz', 'bar/baz'] +``` + +#### Custom Match Parameters + +All parameters can be provided a custom regexp, which overrides the default (`[^\/]+`). + +```js +var re = pathToRegexp('/:foo(\\d+)', keys) +// keys = [{ name: 'foo', ... }] + +re.exec('/123') +//=> ['/123', '123'] + +re.exec('/abc') +//=> null +``` + +**Please note:** Backslashes need to be escaped with another backslash in strings. + +#### Unnamed Parameters + +It is possible to write an unnamed parameter that only consists of a matching group. It works the same as a named parameter, except it will be numerically indexed. + +```js +var re = pathToRegexp('/:foo/(.*)', keys) +// keys = [{ name: 'foo', ... }, { name: 0, ... }] + +re.exec('/test/route') +//=> ['/test/route', 'test', 'route'] +``` + +#### Asterisk + +An asterisk can be used for matching everything. It is equivalent to an unnamed matching group of `(.*)`. + +```js +var re = pathToRegexp('/foo/*', keys) +// keys = [{ name: '0', ... }] + +re.exec('/foo/bar/baz') +//=> ['/foo/bar/baz', 'bar/baz'] +``` + +### Parse + +The parse function is exposed via `pathToRegexp.parse`. This will return an array of strings and keys. + +```js +var tokens = pathToRegexp.parse('/route/:foo/(.*)') + +console.log(tokens[0]) +//=> "/route" + +console.log(tokens[1]) +//=> { name: 'foo', prefix: '/', delimiter: '/', optional: false, repeat: false, pattern: '[^\\/]+?' } + +console.log(tokens[2]) +//=> { name: 0, prefix: '/', delimiter: '/', optional: false, repeat: false, pattern: '.*' } +``` + +**Note:** This method only works with Express-style strings. + +### Compile ("Reverse" Path-To-RegExp) + +Path-To-RegExp exposes a compile function for transforming an Express-style path into a valid path. + +```js +var toPath = pathToRegexp.compile('/user/:id') + +toPath({ id: 123 }) //=> "/user/123" +toPath({ id: 'café' }) //=> "/user/caf%C3%A9" +toPath({ id: '/' }) //=> "/user/%2F" + +toPath({ id: ':' }) //=> "/user/%3A" +toPath({ id: ':' }, { pretty: true }) //=> "/user/:" + +var toPathRepeated = pathToRegexp.compile('/:segment+') + +toPathRepeated({ segment: 'foo' }) //=> "/foo" +toPathRepeated({ segment: ['a', 'b', 'c'] }) //=> "/a/b/c" + +var toPathRegexp = pathToRegexp.compile('/user/:id(\\d+)') + +toPathRegexp({ id: 123 }) //=> "/user/123" +toPathRegexp({ id: '123' }) //=> "/user/123" +toPathRegexp({ id: 'abc' }) //=> Throws `TypeError`. +``` + +**Note:** The generated function will throw on invalid input. It will do all necessary checks to ensure the generated path is valid. This method only works with strings. + +### Working with Tokens + +Path-To-RegExp exposes the two functions used internally that accept an array of tokens. + +* `pathToRegexp.tokensToRegExp(tokens, options)` Transform an array of tokens into a matching regular expression. +* `pathToRegexp.tokensToFunction(tokens)` Transform an array of tokens into a path generator function. + +#### Token Information + +* `name` The name of the token (`string` for named or `number` for index) +* `prefix` The prefix character for the segment (`/` or `.`) +* `delimiter` The delimiter for the segment (same as prefix or `/`) +* `optional` Indicates the token is optional (`boolean`) +* `repeat` Indicates the token is repeated (`boolean`) +* `partial` Indicates this token is a partial path segment (`boolean`) +* `pattern` The RegExp used to match this token (`string`) +* `asterisk` Indicates the token is an `*` match (`boolean`) + +## Compatibility with Express <= 4.x + +Path-To-RegExp breaks compatibility with Express <= `4.x`: + +* No longer a direct conversion to a RegExp with sugar on top - it's a path matcher with named and unnamed matching groups + * It's unlikely you previously abused this feature, it's rare and you could always use a RegExp instead +* All matching RegExp special characters can be used in a matching group. E.g. `/:user(.*)` + * Other RegExp features are not support - no nested matching groups, non-capturing groups or look aheads +* Parameters have suffixes that augment meaning - `*`, `+` and `?`. E.g. `/:user*` + +## TypeScript + +Includes a [`.d.ts`](index.d.ts) file for TypeScript users. + +## Live Demo + +You can see a live demo of this library in use at [express-route-tester](http://forbeslindesay.github.com/express-route-tester/). + +## License + +MIT + +[npm-image]: https://img.shields.io/npm/v/path-to-regexp.svg?style=flat +[npm-url]: https://npmjs.org/package/path-to-regexp +[travis-image]: https://img.shields.io/travis/pillarjs/path-to-regexp.svg?style=flat +[travis-url]: https://travis-ci.org/pillarjs/path-to-regexp +[coveralls-image]: https://img.shields.io/coveralls/pillarjs/path-to-regexp.svg?style=flat +[coveralls-url]: https://coveralls.io/r/pillarjs/path-to-regexp?branch=master +[david-image]: http://img.shields.io/david/pillarjs/path-to-regexp.svg?style=flat +[david-url]: https://david-dm.org/pillarjs/path-to-regexp +[license-image]: http://img.shields.io/npm/l/path-to-regexp.svg?style=flat +[license-url]: LICENSE.md +[downloads-image]: http://img.shields.io/npm/dm/path-to-regexp.svg?style=flat +[downloads-url]: https://npmjs.org/package/path-to-regexp diff --git a/node_modules/path-to-regexp/index.d.ts b/node_modules/path-to-regexp/index.d.ts new file mode 100644 index 0000000..4a1f65c --- /dev/null +++ b/node_modules/path-to-regexp/index.d.ts @@ -0,0 +1,84 @@ +declare function pathToRegexp (path: pathToRegexp.Path, options?: pathToRegexp.RegExpOptions & pathToRegexp.ParseOptions): pathToRegexp.PathRegExp; +declare function pathToRegexp (path: pathToRegexp.Path, keys?: pathToRegexp.Key[], options?: pathToRegexp.RegExpOptions & pathToRegexp.ParseOptions): pathToRegexp.PathRegExp; + +declare namespace pathToRegexp { + export interface PathRegExp extends RegExp { + // An array to be populated with the keys found in the path. + keys: Key[]; + } + + export interface RegExpOptions { + /** + * When `true` the route will be case sensitive. (default: `false`) + */ + sensitive?: boolean; + /** + * When `false` the trailing slash is optional. (default: `false`) + */ + strict?: boolean; + /** + * When `false` the path will match at the beginning. (default: `true`) + */ + end?: boolean; + /** + * Sets the final character for non-ending optimistic matches. (default: `/`) + */ + delimiter?: string; + } + + export interface ParseOptions { + /** + * Set the default delimiter for repeat parameters. (default: `'/'`) + */ + delimiter?: string; + } + + export interface TokensToFunctionOptions { + /** + * When `true` the regexp will be case sensitive. (default: `false`) + */ + sensitive?: boolean; + } + + /** + * Parse an Express-style path into an array of tokens. + */ + export function parse (path: string, options?: ParseOptions): Token[]; + + /** + * Transforming an Express-style path into a valid path. + */ + export function compile (path: string, options?: ParseOptions & TokensToFunctionOptions): PathFunction; + + /** + * Transform an array of tokens into a path generator function. + */ + export function tokensToFunction (tokens: Token[], options?: TokensToFunctionOptions): PathFunction; + + /** + * Transform an array of tokens into a matching regular expression. + */ + export function tokensToRegExp (tokens: Token[], options?: RegExpOptions): PathRegExp; + export function tokensToRegExp (tokens: Token[], keys?: Key[], options?: RegExpOptions): PathRegExp; + + export interface Key { + name: string | number; + prefix: string; + delimiter: string; + optional: boolean; + repeat: boolean; + pattern: string; + partial: boolean; + asterisk: boolean; + } + + interface PathFunctionOptions { + pretty?: boolean; + } + + export type Token = string | Key; + export type Path = string | RegExp | Array; + export type PathFunction = (data?: Object, options?: PathFunctionOptions) => string; +} + +export = pathToRegexp; diff --git a/node_modules/path-to-regexp/index.js b/node_modules/path-to-regexp/index.js new file mode 100644 index 0000000..e485afe --- /dev/null +++ b/node_modules/path-to-regexp/index.js @@ -0,0 +1,426 @@ +var isarray = require('isarray') + +/** + * Expose `pathToRegexp`. + */ +module.exports = pathToRegexp +module.exports.parse = parse +module.exports.compile = compile +module.exports.tokensToFunction = tokensToFunction +module.exports.tokensToRegExp = tokensToRegExp + +/** + * The main path matching regexp utility. + * + * @type {RegExp} + */ +var PATH_REGEXP = new RegExp([ + // Match escaped characters that would otherwise appear in future matches. + // This allows the user to escape special characters that won't transform. + '(\\\\.)', + // Match Express-style parameters and un-named parameters with a prefix + // and optional suffixes. Matches appear as: + // + // "/:test(\\d+)?" => ["/", "test", "\d+", undefined, "?", undefined] + // "/route(\\d+)" => [undefined, undefined, undefined, "\d+", undefined, undefined] + // "/*" => ["/", undefined, undefined, undefined, undefined, "*"] + '([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))' +].join('|'), 'g') + +/** + * Parse a string for the raw tokens. + * + * @param {string} str + * @param {Object=} options + * @return {!Array} + */ +function parse (str, options) { + var tokens = [] + var key = 0 + var index = 0 + var path = '' + var defaultDelimiter = options && options.delimiter || '/' + var res + + while ((res = PATH_REGEXP.exec(str)) != null) { + var m = res[0] + var escaped = res[1] + var offset = res.index + path += str.slice(index, offset) + index = offset + m.length + + // Ignore already escaped sequences. + if (escaped) { + path += escaped[1] + continue + } + + var next = str[index] + var prefix = res[2] + var name = res[3] + var capture = res[4] + var group = res[5] + var modifier = res[6] + var asterisk = res[7] + + // Push the current path onto the tokens. + if (path) { + tokens.push(path) + path = '' + } + + var partial = prefix != null && next != null && next !== prefix + var repeat = modifier === '+' || modifier === '*' + var optional = modifier === '?' || modifier === '*' + var delimiter = res[2] || defaultDelimiter + var pattern = capture || group + + tokens.push({ + name: name || key++, + prefix: prefix || '', + delimiter: delimiter, + optional: optional, + repeat: repeat, + partial: partial, + asterisk: !!asterisk, + pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?') + }) + } + + // Match any characters still remaining. + if (index < str.length) { + path += str.substr(index) + } + + // If the path exists, push it onto the end. + if (path) { + tokens.push(path) + } + + return tokens +} + +/** + * Compile a string to a template function for the path. + * + * @param {string} str + * @param {Object=} options + * @return {!function(Object=, Object=)} + */ +function compile (str, options) { + return tokensToFunction(parse(str, options), options) +} + +/** + * Prettier encoding of URI path segments. + * + * @param {string} + * @return {string} + */ +function encodeURIComponentPretty (str) { + return encodeURI(str).replace(/[\/?#]/g, function (c) { + return '%' + c.charCodeAt(0).toString(16).toUpperCase() + }) +} + +/** + * Encode the asterisk parameter. Similar to `pretty`, but allows slashes. + * + * @param {string} + * @return {string} + */ +function encodeAsterisk (str) { + return encodeURI(str).replace(/[?#]/g, function (c) { + return '%' + c.charCodeAt(0).toString(16).toUpperCase() + }) +} + +/** + * Expose a method for transforming tokens into the path function. + */ +function tokensToFunction (tokens, options) { + // Compile all the tokens into regexps. + var matches = new Array(tokens.length) + + // Compile all the patterns before compilation. + for (var i = 0; i < tokens.length; i++) { + if (typeof tokens[i] === 'object') { + matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options)) + } + } + + return function (obj, opts) { + var path = '' + var data = obj || {} + var options = opts || {} + var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent + + for (var i = 0; i < tokens.length; i++) { + var token = tokens[i] + + if (typeof token === 'string') { + path += token + + continue + } + + var value = data[token.name] + var segment + + if (value == null) { + if (token.optional) { + // Prepend partial segment prefixes. + if (token.partial) { + path += token.prefix + } + + continue + } else { + throw new TypeError('Expected "' + token.name + '" to be defined') + } + } + + if (isarray(value)) { + if (!token.repeat) { + throw new TypeError('Expected "' + token.name + '" to not repeat, but received `' + JSON.stringify(value) + '`') + } + + if (value.length === 0) { + if (token.optional) { + continue + } else { + throw new TypeError('Expected "' + token.name + '" to not be empty') + } + } + + for (var j = 0; j < value.length; j++) { + segment = encode(value[j]) + + if (!matches[i].test(segment)) { + throw new TypeError('Expected all "' + token.name + '" to match "' + token.pattern + '", but received `' + JSON.stringify(segment) + '`') + } + + path += (j === 0 ? token.prefix : token.delimiter) + segment + } + + continue + } + + segment = token.asterisk ? encodeAsterisk(value) : encode(value) + + if (!matches[i].test(segment)) { + throw new TypeError('Expected "' + token.name + '" to match "' + token.pattern + '", but received "' + segment + '"') + } + + path += token.prefix + segment + } + + return path + } +} + +/** + * Escape a regular expression string. + * + * @param {string} str + * @return {string} + */ +function escapeString (str) { + return str.replace(/([.+*?=^!:${}()[\]|\/\\])/g, '\\$1') +} + +/** + * Escape the capturing group by escaping special characters and meaning. + * + * @param {string} group + * @return {string} + */ +function escapeGroup (group) { + return group.replace(/([=!:$\/()])/g, '\\$1') +} + +/** + * Attach the keys as a property of the regexp. + * + * @param {!RegExp} re + * @param {Array} keys + * @return {!RegExp} + */ +function attachKeys (re, keys) { + re.keys = keys + return re +} + +/** + * Get the flags for a regexp from the options. + * + * @param {Object} options + * @return {string} + */ +function flags (options) { + return options && options.sensitive ? '' : 'i' +} + +/** + * Pull out keys from a regexp. + * + * @param {!RegExp} path + * @param {!Array} keys + * @return {!RegExp} + */ +function regexpToRegexp (path, keys) { + // Use a negative lookahead to match only capturing groups. + var groups = path.source.match(/\((?!\?)/g) + + if (groups) { + for (var i = 0; i < groups.length; i++) { + keys.push({ + name: i, + prefix: null, + delimiter: null, + optional: false, + repeat: false, + partial: false, + asterisk: false, + pattern: null + }) + } + } + + return attachKeys(path, keys) +} + +/** + * Transform an array into a regexp. + * + * @param {!Array} path + * @param {Array} keys + * @param {!Object} options + * @return {!RegExp} + */ +function arrayToRegexp (path, keys, options) { + var parts = [] + + for (var i = 0; i < path.length; i++) { + parts.push(pathToRegexp(path[i], keys, options).source) + } + + var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options)) + + return attachKeys(regexp, keys) +} + +/** + * Create a path regexp from string input. + * + * @param {string} path + * @param {!Array} keys + * @param {!Object} options + * @return {!RegExp} + */ +function stringToRegexp (path, keys, options) { + return tokensToRegExp(parse(path, options), keys, options) +} + +/** + * Expose a function for taking tokens and returning a RegExp. + * + * @param {!Array} tokens + * @param {(Array|Object)=} keys + * @param {Object=} options + * @return {!RegExp} + */ +function tokensToRegExp (tokens, keys, options) { + if (!isarray(keys)) { + options = /** @type {!Object} */ (keys || options) + keys = [] + } + + options = options || {} + + var strict = options.strict + var end = options.end !== false + var route = '' + + // Iterate over the tokens and create our regexp string. + for (var i = 0; i < tokens.length; i++) { + var token = tokens[i] + + if (typeof token === 'string') { + route += escapeString(token) + } else { + var prefix = escapeString(token.prefix) + var capture = '(?:' + token.pattern + ')' + + keys.push(token) + + if (token.repeat) { + capture += '(?:' + prefix + capture + ')*' + } + + if (token.optional) { + if (!token.partial) { + capture = '(?:' + prefix + '(' + capture + '))?' + } else { + capture = prefix + '(' + capture + ')?' + } + } else { + capture = prefix + '(' + capture + ')' + } + + route += capture + } + } + + var delimiter = escapeString(options.delimiter || '/') + var endsWithDelimiter = route.slice(-delimiter.length) === delimiter + + // In non-strict mode we allow a slash at the end of match. If the path to + // match already ends with a slash, we remove it for consistency. The slash + // is valid at the end of a path match, not in the middle. This is important + // in non-ending mode, where "/test/" shouldn't match "/test//route". + if (!strict) { + route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?' + } + + if (end) { + route += '$' + } else { + // In non-ending mode, we need the capturing groups to match as much as + // possible by using a positive lookahead to the end or next path segment. + route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)' + } + + return attachKeys(new RegExp('^' + route, flags(options)), keys) +} + +/** + * Normalize the given path string, returning a regular expression. + * + * An empty array can be passed in for the keys, which will hold the + * placeholder key descriptions. For example, using `/user/:id`, `keys` will + * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`. + * + * @param {(string|RegExp|Array)} path + * @param {(Array|Object)=} keys + * @param {Object=} options + * @return {!RegExp} + */ +function pathToRegexp (path, keys, options) { + if (!isarray(keys)) { + options = /** @type {!Object} */ (keys || options) + keys = [] + } + + options = options || {} + + if (path instanceof RegExp) { + return regexpToRegexp(path, /** @type {!Array} */ (keys)) + } + + if (isarray(path)) { + return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options) + } + + return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options) +} diff --git a/node_modules/path-to-regexp/package.json b/node_modules/path-to-regexp/package.json new file mode 100644 index 0000000..33a5906 --- /dev/null +++ b/node_modules/path-to-regexp/package.json @@ -0,0 +1,76 @@ +{ + "_from": "path-to-regexp@^1.7.0", + "_id": "path-to-regexp@1.8.0", + "_inBundle": false, + "_integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "_location": "/path-to-regexp", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "path-to-regexp@^1.7.0", + "name": "path-to-regexp", + "escapedName": "path-to-regexp", + "rawSpec": "^1.7.0", + "saveSpec": null, + "fetchSpec": "^1.7.0" + }, + "_requiredBy": [ + "/react-router" + ], + "_resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "_shasum": "887b3ba9d84393e87a0a0b9f4cb756198b53548a", + "_spec": "path-to-regexp@^1.7.0", + "_where": "G:\\_comp_\\odsc\\orig\\AllNotes\\node_modules\\react-router", + "bugs": { + "url": "https://github.com/pillarjs/path-to-regexp/issues" + }, + "bundleDependencies": false, + "component": { + "scripts": { + "path-to-regexp": "index.js" + } + }, + "dependencies": { + "isarray": "0.0.1" + }, + "deprecated": false, + "description": "Express style path to RegExp utility", + "devDependencies": { + "chai": "^2.3.0", + "istanbul": "~0.3.0", + "mocha": "~2.2.4", + "standard": "~3.7.3", + "ts-node": "^0.5.5", + "typescript": "^1.8.7", + "typings": "^1.0.4" + }, + "files": [ + "index.js", + "index.d.ts", + "LICENSE" + ], + "homepage": "https://github.com/pillarjs/path-to-regexp#readme", + "keywords": [ + "express", + "regexp", + "route", + "routing" + ], + "license": "MIT", + "main": "index.js", + "name": "path-to-regexp", + "repository": { + "type": "git", + "url": "git+https://github.com/pillarjs/path-to-regexp.git" + }, + "scripts": { + "lint": "standard", + "prepublish": "typings install", + "test": "npm run lint && npm run test-cov", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --require ts-node/register -R spec test.ts", + "test-spec": "mocha --require ts-node/register -R spec --bail test.ts" + }, + "typings": "index.d.ts", + "version": "1.8.0" +} diff --git a/node_modules/prop-types/CHANGELOG.md b/node_modules/prop-types/CHANGELOG.md new file mode 100644 index 0000000..025d2f4 --- /dev/null +++ b/node_modules/prop-types/CHANGELOG.md @@ -0,0 +1,92 @@ +## 15.7.2 +* [Fix] ensure nullish values in `oneOf` do not crash ([#256](https://github.com/facebook/prop-types/issues/256)) +* [Fix] move `loose-envify` back to production deps, for browerify usage ([#203](https://github.com/facebook/prop-types/issues/203)) + +## 15.7.1 +* [Fix] avoid template literal syntax ([#255](https://github.com/facebook/prop-types/issues/255), [#254](https://github.com/facebook/prop-types/issues/254)) + +## 15.7.0 +* [New] Add `.elementType` ([#211](https://github.com/facebook/prop-types/pull/211)) +* [New] add `PropTypes.resetWarningCache` ([#178](https://github.com/facebook/prop-types/pull/178)) +* `oneOf`: improve warning when multiple arguments are supplied ([#244](https://github.com/facebook/prop-types/pull/244)) +* Fix `oneOf` when used with Symbols ([#224](https://github.com/facebook/prop-types/pull/224)) +* Avoid relying on `hasOwnProperty` being present on values' prototypes ([#112](https://github.com/facebook/prop-types/pull/112), [#187](https://github.com/facebook/prop-types/pull/187)) +* Improve readme ([#248](https://github.com/facebook/prop-types/pull/248), [#233](https://github.com/facebook/prop-types/pull/233)) +* Clean up mistaken runtime dep, swap envify for loose-envify ([#204](https://github.com/facebook/prop-types/pull/204)) + +## 15.6.2 +* Remove the `fbjs` dependency by inlining some helpers from it ([#194](https://github.com/facebook/prop-types/pull/194))) + +## 15.6.1 +* Fix an issue where outdated BSD license headers were still present in the published bundle [#162](https://github.com/facebook/prop-types/issues/162) + +## 15.6.0 + +* Switch from BSD + Patents to MIT license +* Add PropTypes.exact, like PropTypes.shape but warns on extra object keys. ([@thejameskyle](https://github.com/thejameskyle) and [@aweary](https://github.com/aweary) in [#41](https://github.com/facebook/prop-types/pull/41) and [#87](https://github.com/facebook/prop-types/pull/87)) + +## 15.5.10 + +* Fix a false positive warning when using a production UMD build of a third-party library with a DEV version of React. ([@gaearon](https://github.com/gaearon) in [#50](https://github.com/facebook/prop-types/pull/50)) + +## 15.5.9 + +* Add `loose-envify` Browserify transform for users who don't envify globally. ([@mridgway](https://github.com/mridgway) in [#45](https://github.com/facebook/prop-types/pull/45)) + +## 15.5.8 + +* Limit the manual PropTypes call warning count because it has false positives with React versions earlier than 15.2.0 in the 15.x branch and 0.14.9 in the 0.14.x branch. ([@gaearon](https://github.com/gaearon) in [#26](https://github.com/facebook/prop-types/pull/26)) + +## 15.5.7 + +* **Critical Bugfix:** Fix an accidental breaking change that caused errors in production when used through `React.PropTypes`. ([@gaearon](https://github.com/gaearon) in [#20](https://github.com/facebook/prop-types/pull/20)) +* Improve the size of production UMD build. ([@aweary](https://github.com/aweary) in [38ba18](https://github.com/facebook/prop-types/commit/38ba18a4a8f705f4b2b33c88204573ddd604f2d6) and [7882a7](https://github.com/facebook/prop-types/commit/7882a7285293db5f284bcf559b869fd2cd4c44d4)) + +## 15.5.6 + +**Note: this release has a critical issue and was deprecated. Please update to 15.5.7 or higher.** + +* Fix a markdown issue in README. ([@bvaughn](https://github.com/bvaughn) in [174f77](https://github.com/facebook/prop-types/commit/174f77a50484fa628593e84b871fb40eed78b69a)) + +## 15.5.5 + +**Note: this release has a critical issue and was deprecated. Please update to 15.5.7 or higher.** + +* Add missing documentation and license files. ([@bvaughn](https://github.com/bvaughn) in [0a53d3](https://github.com/facebook/prop-types/commit/0a53d3a34283ae1e2d3aa396632b6dc2a2061e6a)) + +## 15.5.4 + +**Note: this release has a critical issue and was deprecated. Please update to 15.5.7 or higher.** + +* Reduce the size of the UMD Build. ([@acdlite](https://github.com/acdlite) in [31e9344](https://github.com/facebook/prop-types/commit/31e9344ca3233159928da66295da17dad82db1a8)) +* Remove bad package url. ([@ljharb](https://github.com/ljharb) in [158198f](https://github.com/facebook/prop-types/commit/158198fd6c468a3f6f742e0e355e622b3914048a)) +* Remove the accidentally included typechecking code from the production build. + +## 15.5.3 + +**Note: this release has a critical issue and was deprecated. Please update to 15.5.7 or higher.** + +* Remove the accidentally included React package code from the UMD bundle. ([@acdlite](https://github.com/acdlite) in [df318bb](https://github.com/facebook/prop-types/commit/df318bba8a89bc5aadbb0292822cf4ed71d27ace)) + +## 15.5.2 + +**Note: this release has a critical issue and was deprecated. Please update to 15.5.7 or higher.** + +* Remove dependency on React for CommonJS entry point. ([@acdlite](https://github.com/acdlite) in [cae72bb](https://github.com/facebook/prop-types/commit/cae72bb281a3766c765e3624f6088c3713567e6d)) + + +## 15.5.1 + +**Note: this release has a critical issue and was deprecated. Please update to 15.5.7 or higher.** + +* Remove accidental uncompiled ES6 syntax in the published package. ([@acdlite](https://github.com/acdlite) in [e191963](https://github.com/facebook/react/commit/e1919638b39dd65eedd250a8bb649773ca61b6f1)) + +## 15.5.0 + +**Note: this release has a critical issue and was deprecated. Please update to 15.5.7 or higher.** + +* Initial release. + +## Before 15.5.0 + +PropTypes was previously included in React, but is now a separate package. For earlier history of PropTypes [see the React change log.](https://github.com/facebook/react/blob/master/CHANGELOG.md) diff --git a/node_modules/prop-types/LICENSE b/node_modules/prop-types/LICENSE new file mode 100644 index 0000000..188fb2b --- /dev/null +++ b/node_modules/prop-types/LICENSE @@ -0,0 +1,21 @@ +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. diff --git a/node_modules/prop-types/README.md b/node_modules/prop-types/README.md new file mode 100644 index 0000000..1a23c9d --- /dev/null +++ b/node_modules/prop-types/README.md @@ -0,0 +1,296 @@ +# prop-types [![Build Status](https://travis-ci.com/facebook/prop-types.svg?branch=master)](https://travis-ci.org/facebook/prop-types) + +Runtime type checking for React props and similar objects. + +You can use prop-types to document the intended types of properties passed to +components. React (and potentially other libraries—see the checkPropTypes() +reference below) will check props passed to your components against those +definitions, and warn in development if they don’t match. + +## Installation + +```shell +npm install --save prop-types +``` + +## Importing + +```js +import PropTypes from 'prop-types'; // ES6 +var PropTypes = require('prop-types'); // ES5 with npm +``` + +### CDN + +If you prefer to exclude `prop-types` from your application and use it +globally via `window.PropTypes`, the `prop-types` package provides +single-file distributions, which are hosted on the following CDNs: + +* [**unpkg**](https://unpkg.com/prop-types/) +```html + + + + + +``` + +* [**cdnjs**](https://cdnjs.com/libraries/prop-types) +```html + + + + + +``` + +To load a specific version of `prop-types` replace `15.6.0` with the version number. + +## Usage + +PropTypes was originally exposed as part of the React core module, and is +commonly used with React components. +Here is an example of using PropTypes with a React component, which also +documents the different validators provided: + +```js +import React from 'react'; +import PropTypes from 'prop-types'; + +class MyComponent extends React.Component { + render() { + // ... do things with the props + } +} + +MyComponent.propTypes = { + // You can declare that a prop is a specific JS primitive. By default, these + // are all optional. + optionalArray: PropTypes.array, + optionalBool: PropTypes.bool, + optionalFunc: PropTypes.func, + optionalNumber: PropTypes.number, + optionalObject: PropTypes.object, + optionalString: PropTypes.string, + optionalSymbol: PropTypes.symbol, + + // Anything that can be rendered: numbers, strings, elements or an array + // (or fragment) containing these types. + optionalNode: PropTypes.node, + + // A React element (ie. ). + optionalElement: PropTypes.element, + + // A React element type (ie. MyComponent). + optionalElementType: PropTypes.elementType, + + // You can also declare that a prop is an instance of a class. This uses + // JS's instanceof operator. + optionalMessage: PropTypes.instanceOf(Message), + + // You can ensure that your prop is limited to specific values by treating + // it as an enum. + optionalEnum: PropTypes.oneOf(['News', 'Photos']), + + // An object that could be one of many types + optionalUnion: PropTypes.oneOfType([ + PropTypes.string, + PropTypes.number, + PropTypes.instanceOf(Message) + ]), + + // An array of a certain type + optionalArrayOf: PropTypes.arrayOf(PropTypes.number), + + // An object with property values of a certain type + optionalObjectOf: PropTypes.objectOf(PropTypes.number), + + // You can chain any of the above with `isRequired` to make sure a warning + // is shown if the prop isn't provided. + + // An object taking on a particular shape + optionalObjectWithShape: PropTypes.shape({ + optionalProperty: PropTypes.string, + requiredProperty: PropTypes.number.isRequired + }), + + // An object with warnings on extra properties + optionalObjectWithStrictShape: PropTypes.exact({ + optionalProperty: PropTypes.string, + requiredProperty: PropTypes.number.isRequired + }), + + requiredFunc: PropTypes.func.isRequired, + + // A value of any data type + requiredAny: PropTypes.any.isRequired, + + // You can also specify a custom validator. It should return an Error + // object if the validation fails. Don't `console.warn` or throw, as this + // won't work inside `oneOfType`. + customProp: function(props, propName, componentName) { + if (!/matchme/.test(props[propName])) { + return new Error( + 'Invalid prop `' + propName + '` supplied to' + + ' `' + componentName + '`. Validation failed.' + ); + } + }, + + // You can also supply a custom validator to `arrayOf` and `objectOf`. + // It should return an Error object if the validation fails. The validator + // will be called for each key in the array or object. The first two + // arguments of the validator are the array or object itself, and the + // current item's key. + customArrayProp: PropTypes.arrayOf(function(propValue, key, componentName, location, propFullName) { + if (!/matchme/.test(propValue[key])) { + return new Error( + 'Invalid prop `' + propFullName + '` supplied to' + + ' `' + componentName + '`. Validation failed.' + ); + } + }) +}; +``` + +Refer to the [React documentation](https://facebook.github.io/react/docs/typechecking-with-proptypes.html) for more information. + +## Migrating from React.PropTypes + +Check out [Migrating from React.PropTypes](https://facebook.github.io/react/blog/2017/04/07/react-v15.5.0.html#migrating-from-react.proptypes) for details on how to migrate to `prop-types` from `React.PropTypes`. + +Note that this blog posts **mentions a codemod script that performs the conversion automatically**. + +There are also important notes below. + +## How to Depend on This Package? + +For apps, we recommend putting it in `dependencies` with a caret range. +For example: + +```js + "dependencies": { + "prop-types": "^15.5.7" + } +``` + +For libraries, we *also* recommend leaving it in `dependencies`: + +```js + "dependencies": { + "prop-types": "^15.5.7" + }, + "peerDependencies": { + "react": "^15.5.0" + } +``` + +**Note:** there are known issues in versions before 15.5.7 so we recommend using it as the minimal version. + +Make sure that the version range uses a caret (`^`) and thus is broad enough for npm to efficiently deduplicate packages. + +For UMD bundles of your components, make sure you **don’t** include `PropTypes` in the build. Usually this is done by marking it as an external (the specifics depend on your bundler), just like you do with React. + +## Compatibility + +### React 0.14 + +This package is compatible with **React 0.14.9**. Compared to 0.14.8 (which was released in March of 2016), there are no other changes in 0.14.9, so it should be a painless upgrade. + +```shell +# ATTENTION: Only run this if you still use React 0.14! +npm install --save react@^0.14.9 react-dom@^0.14.9 +``` + +### React 15+ + +This package is compatible with **React 15.3.0** and higher. + +``` +npm install --save react@^15.3.0 react-dom@^15.3.0 +``` + +### What happens on other React versions? + +It outputs warnings with the message below even though the developer doesn’t do anything wrong. Unfortunately there is no solution for this other than updating React to either 15.3.0 or higher, or 0.14.9 if you’re using React 0.14. + +## Difference from `React.PropTypes`: Don’t Call Validator Functions + +First of all, **which version of React are you using**? You might be seeing this message because a component library has updated to use `prop-types` package, but your version of React is incompatible with it. See the [above section](#compatibility) for more details. + +Are you using either React 0.14.9 or a version higher than React 15.3.0? Read on. + +When you migrate components to use the standalone `prop-types`, **all validator functions will start throwing an error if you call them directly**. This makes sure that nobody relies on them in production code, and it is safe to strip their implementations to optimize the bundle size. + +Code like this is still fine: + +```js +MyComponent.propTypes = { + myProp: PropTypes.bool +}; +``` + +However, code like this will not work with the `prop-types` package: + +```js +// Will not work with `prop-types` package! +var errorOrNull = PropTypes.bool(42, 'myProp', 'MyComponent', 'prop'); +``` + +It will throw an error: + +``` +Calling PropTypes validators directly is not supported by the `prop-types` package. +Use PropTypes.checkPropTypes() to call them. +``` + +(If you see **a warning** rather than an error with this message, please check the [above section about compatibility](#compatibility).) + +This is new behavior, and you will only encounter it when you migrate from `React.PropTypes` to the `prop-types` package. For the vast majority of components, this doesn’t matter, and if you didn’t see [this warning](https://facebook.github.io/react/warnings/dont-call-proptypes.html) in your components, your code is safe to migrate. This is not a breaking change in React because you are only opting into this change for a component by explicitly changing your imports to use `prop-types`. If you temporarily need the old behavior, you can keep using `React.PropTypes` until React 16. + +**If you absolutely need to trigger the validation manually**, call `PropTypes.checkPropTypes()`. Unlike the validators themselves, this function is safe to call in production, as it will be replaced by an empty function: + +```js +// Works with standalone PropTypes +PropTypes.checkPropTypes(MyComponent.propTypes, props, 'prop', 'MyComponent'); +``` +See below for more info. + +**You might also see this error** if you’re calling a `PropTypes` validator from your own custom `PropTypes` validator. In this case, the fix is to make sure that you are passing *all* of the arguments to the inner function. There is a more in-depth explanation of how to fix it [on this page](https://facebook.github.io/react/warnings/dont-call-proptypes.html#fixing-the-false-positive-in-third-party-proptypes). Alternatively, you can temporarily keep using `React.PropTypes` until React 16, as it would still only warn in this case. + +If you use a bundler like Browserify or Webpack, don’t forget to [follow these instructions](https://reactjs.org/docs/optimizing-performance.html#use-the-production-build) to correctly bundle your application in development or production mode. Otherwise you’ll ship unnecessary code to your users. + +## PropTypes.checkPropTypes + +React will automatically check the propTypes you set on the component, but if +you are using PropTypes without React then you may want to manually call +`PropTypes.checkPropTypes`, like so: + +```js +const myPropTypes = { + name: PropTypes.string, + age: PropTypes.number, + // ... define your prop validations +}; + +const props = { + name: 'hello', // is valid + age: 'world', // not valid +}; + +// Let's say your component is called 'MyComponent' + +// Works with standalone PropTypes +PropTypes.checkPropTypes(myPropTypes, props, 'age', 'MyComponent'); +// This will warn as follows: +// Warning: Failed prop type: Invalid prop `age` of type `string` supplied to +// `MyComponent`, expected `number`. +``` + +## PropTypes.resetWarningCache() + +`PropTypes.checkPropTypes(...)` only `console.error.log(...)`s a given message once. To reset the cache while testing call `PropTypes.resetWarningCache()` + +### License + +prop-types is [MIT licensed](./LICENSE). diff --git a/node_modules/prop-types/checkPropTypes.js b/node_modules/prop-types/checkPropTypes.js new file mode 100644 index 0000000..49111df --- /dev/null +++ b/node_modules/prop-types/checkPropTypes.js @@ -0,0 +1,102 @@ +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +'use strict'; + +var printWarning = function() {}; + +if (process.env.NODE_ENV !== 'production') { + var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret'); + var loggedTypeFailures = {}; + var has = Function.call.bind(Object.prototype.hasOwnProperty); + + printWarning = function(text) { + var message = 'Warning: ' + text; + if (typeof console !== 'undefined') { + console.error(message); + } + try { + // --- Welcome to debugging React --- + // This error was thrown as a convenience so that you can use this stack + // to find the callsite that caused this warning to fire. + throw new Error(message); + } catch (x) {} + }; +} + +/** + * Assert that the values match with the type specs. + * Error messages are memorized and will only be shown once. + * + * @param {object} typeSpecs Map of name to a ReactPropType + * @param {object} values Runtime values that need to be type-checked + * @param {string} location e.g. "prop", "context", "child context" + * @param {string} componentName Name of the component for error messages. + * @param {?Function} getStack Returns the component stack. + * @private + */ +function checkPropTypes(typeSpecs, values, location, componentName, getStack) { + if (process.env.NODE_ENV !== 'production') { + for (var typeSpecName in typeSpecs) { + if (has(typeSpecs, typeSpecName)) { + var error; + // Prop type validation may throw. In case they do, we don't want to + // fail the render phase where it didn't fail before. So we log it. + // After these have been cleaned up, we'll let them throw. + try { + // This is intentionally an invariant that gets caught. It's the same + // behavior as without this statement except with a better message. + if (typeof typeSpecs[typeSpecName] !== 'function') { + var err = Error( + (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + ); + err.name = 'Invariant Violation'; + throw err; + } + error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret); + } catch (ex) { + error = ex; + } + if (error && !(error instanceof Error)) { + printWarning( + (componentName || 'React class') + ': type specification of ' + + location + ' `' + typeSpecName + '` is invalid; the type checker ' + + 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' + + 'You may have forgotten to pass an argument to the type checker ' + + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + + 'shape all require an argument).' + ); + } + if (error instanceof Error && !(error.message in loggedTypeFailures)) { + // Only monitor this failure once because there tends to be a lot of the + // same error. + loggedTypeFailures[error.message] = true; + + var stack = getStack ? getStack() : ''; + + printWarning( + 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '') + ); + } + } + } + } +} + +/** + * Resets warning cache when testing. + * + * @private + */ +checkPropTypes.resetWarningCache = function() { + if (process.env.NODE_ENV !== 'production') { + loggedTypeFailures = {}; + } +} + +module.exports = checkPropTypes; diff --git a/node_modules/prop-types/factory.js b/node_modules/prop-types/factory.js new file mode 100644 index 0000000..abdf8e6 --- /dev/null +++ b/node_modules/prop-types/factory.js @@ -0,0 +1,19 @@ +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +'use strict'; + +// React 15.5 references this module, and assumes PropTypes are still callable in production. +// Therefore we re-export development-only version with all the PropTypes checks here. +// However if one is migrating to the `prop-types` npm library, they will go through the +// `index.js` entry point, and it will branch depending on the environment. +var factory = require('./factoryWithTypeCheckers'); +module.exports = function(isValidElement) { + // It is still allowed in 15.5. + var throwOnDirectAccess = false; + return factory(isValidElement, throwOnDirectAccess); +}; diff --git a/node_modules/prop-types/factoryWithThrowingShims.js b/node_modules/prop-types/factoryWithThrowingShims.js new file mode 100644 index 0000000..e5b2f9c --- /dev/null +++ b/node_modules/prop-types/factoryWithThrowingShims.js @@ -0,0 +1,64 @@ +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +'use strict'; + +var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret'); + +function emptyFunction() {} +function emptyFunctionWithReset() {} +emptyFunctionWithReset.resetWarningCache = emptyFunction; + +module.exports = function() { + function shim(props, propName, componentName, location, propFullName, secret) { + if (secret === ReactPropTypesSecret) { + // It is still safe when called from React. + return; + } + var err = new Error( + 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + + 'Use PropTypes.checkPropTypes() to call them. ' + + 'Read more at http://fb.me/use-check-prop-types' + ); + err.name = 'Invariant Violation'; + throw err; + }; + shim.isRequired = shim; + function getShim() { + return shim; + }; + // Important! + // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`. + var ReactPropTypes = { + array: shim, + bool: shim, + func: shim, + number: shim, + object: shim, + string: shim, + symbol: shim, + + any: shim, + arrayOf: getShim, + element: shim, + elementType: shim, + instanceOf: getShim, + node: shim, + objectOf: getShim, + oneOf: getShim, + oneOfType: getShim, + shape: getShim, + exact: getShim, + + checkPropTypes: emptyFunctionWithReset, + resetWarningCache: emptyFunction + }; + + ReactPropTypes.PropTypes = ReactPropTypes; + + return ReactPropTypes; +}; diff --git a/node_modules/prop-types/factoryWithTypeCheckers.js b/node_modules/prop-types/factoryWithTypeCheckers.js new file mode 100644 index 0000000..3711f0b --- /dev/null +++ b/node_modules/prop-types/factoryWithTypeCheckers.js @@ -0,0 +1,591 @@ +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +'use strict'; + +var ReactIs = require('react-is'); +var assign = require('object-assign'); + +var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret'); +var checkPropTypes = require('./checkPropTypes'); + +var has = Function.call.bind(Object.prototype.hasOwnProperty); +var printWarning = function() {}; + +if (process.env.NODE_ENV !== 'production') { + printWarning = function(text) { + var message = 'Warning: ' + text; + if (typeof console !== 'undefined') { + console.error(message); + } + try { + // --- Welcome to debugging React --- + // This error was thrown as a convenience so that you can use this stack + // to find the callsite that caused this warning to fire. + throw new Error(message); + } catch (x) {} + }; +} + +function emptyFunctionThatReturnsNull() { + return null; +} + +module.exports = function(isValidElement, throwOnDirectAccess) { + /* global Symbol */ + var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; + var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec. + + /** + * Returns the iterator method function contained on the iterable object. + * + * Be sure to invoke the function with the iterable as context: + * + * var iteratorFn = getIteratorFn(myIterable); + * if (iteratorFn) { + * var iterator = iteratorFn.call(myIterable); + * ... + * } + * + * @param {?object} maybeIterable + * @return {?function} + */ + function getIteratorFn(maybeIterable) { + var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]); + if (typeof iteratorFn === 'function') { + return iteratorFn; + } + } + + /** + * Collection of methods that allow declaration and validation of props that are + * supplied to React components. Example usage: + * + * var Props = require('ReactPropTypes'); + * var MyArticle = React.createClass({ + * propTypes: { + * // An optional string prop named "description". + * description: Props.string, + * + * // A required enum prop named "category". + * category: Props.oneOf(['News','Photos']).isRequired, + * + * // A prop named "dialog" that requires an instance of Dialog. + * dialog: Props.instanceOf(Dialog).isRequired + * }, + * render: function() { ... } + * }); + * + * A more formal specification of how these methods are used: + * + * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...) + * decl := ReactPropTypes.{type}(.isRequired)? + * + * Each and every declaration produces a function with the same signature. This + * allows the creation of custom validation functions. For example: + * + * var MyLink = React.createClass({ + * propTypes: { + * // An optional string or URI prop named "href". + * href: function(props, propName, componentName) { + * var propValue = props[propName]; + * if (propValue != null && typeof propValue !== 'string' && + * !(propValue instanceof URI)) { + * return new Error( + * 'Expected a string or an URI for ' + propName + ' in ' + + * componentName + * ); + * } + * } + * }, + * render: function() {...} + * }); + * + * @internal + */ + + var ANONYMOUS = '<>'; + + // Important! + // Keep this list in sync with production version in `./factoryWithThrowingShims.js`. + var ReactPropTypes = { + array: createPrimitiveTypeChecker('array'), + bool: createPrimitiveTypeChecker('boolean'), + func: createPrimitiveTypeChecker('function'), + number: createPrimitiveTypeChecker('number'), + object: createPrimitiveTypeChecker('object'), + string: createPrimitiveTypeChecker('string'), + symbol: createPrimitiveTypeChecker('symbol'), + + any: createAnyTypeChecker(), + arrayOf: createArrayOfTypeChecker, + element: createElementTypeChecker(), + elementType: createElementTypeTypeChecker(), + instanceOf: createInstanceTypeChecker, + node: createNodeChecker(), + objectOf: createObjectOfTypeChecker, + oneOf: createEnumTypeChecker, + oneOfType: createUnionTypeChecker, + shape: createShapeTypeChecker, + exact: createStrictShapeTypeChecker, + }; + + /** + * inlined Object.is polyfill to avoid requiring consumers ship their own + * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is + */ + /*eslint-disable no-self-compare*/ + function is(x, y) { + // SameValue algorithm + if (x === y) { + // Steps 1-5, 7-10 + // Steps 6.b-6.e: +0 != -0 + return x !== 0 || 1 / x === 1 / y; + } else { + // Step 6.a: NaN == NaN + return x !== x && y !== y; + } + } + /*eslint-enable no-self-compare*/ + + /** + * We use an Error-like object for backward compatibility as people may call + * PropTypes directly and inspect their output. However, we don't use real + * Errors anymore. We don't inspect their stack anyway, and creating them + * is prohibitively expensive if they are created too often, such as what + * happens in oneOfType() for any type before the one that matched. + */ + function PropTypeError(message) { + this.message = message; + this.stack = ''; + } + // Make `instanceof Error` still work for returned errors. + PropTypeError.prototype = Error.prototype; + + function createChainableTypeChecker(validate) { + if (process.env.NODE_ENV !== 'production') { + var manualPropTypeCallCache = {}; + var manualPropTypeWarningCount = 0; + } + function checkType(isRequired, props, propName, componentName, location, propFullName, secret) { + componentName = componentName || ANONYMOUS; + propFullName = propFullName || propName; + + if (secret !== ReactPropTypesSecret) { + if (throwOnDirectAccess) { + // New behavior only for users of `prop-types` package + var err = new Error( + 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + + 'Use `PropTypes.checkPropTypes()` to call them. ' + + 'Read more at http://fb.me/use-check-prop-types' + ); + err.name = 'Invariant Violation'; + throw err; + } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') { + // Old behavior for people using React.PropTypes + var cacheKey = componentName + ':' + propName; + if ( + !manualPropTypeCallCache[cacheKey] && + // Avoid spamming the console because they are often not actionable except for lib authors + manualPropTypeWarningCount < 3 + ) { + printWarning( + 'You are manually calling a React.PropTypes validation ' + + 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' + + 'and will throw in the standalone `prop-types` package. ' + + 'You may be seeing this warning due to a third-party PropTypes ' + + 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.' + ); + manualPropTypeCallCache[cacheKey] = true; + manualPropTypeWarningCount++; + } + } + } + if (props[propName] == null) { + if (isRequired) { + if (props[propName] === null) { + return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.')); + } + return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.')); + } + return null; + } else { + return validate(props, propName, componentName, location, propFullName); + } + } + + var chainedCheckType = checkType.bind(null, false); + chainedCheckType.isRequired = checkType.bind(null, true); + + return chainedCheckType; + } + + function createPrimitiveTypeChecker(expectedType) { + function validate(props, propName, componentName, location, propFullName, secret) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== expectedType) { + // `propValue` being instance of, say, date/regexp, pass the 'object' + // check, but we can offer a more precise error message here rather than + // 'of type `object`'. + var preciseType = getPreciseType(propValue); + + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createAnyTypeChecker() { + return createChainableTypeChecker(emptyFunctionThatReturnsNull); + } + + function createArrayOfTypeChecker(typeChecker) { + function validate(props, propName, componentName, location, propFullName) { + if (typeof typeChecker !== 'function') { + return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.'); + } + var propValue = props[propName]; + if (!Array.isArray(propValue)) { + var propType = getPropType(propValue); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.')); + } + for (var i = 0; i < propValue.length; i++) { + var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret); + if (error instanceof Error) { + return error; + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createElementTypeChecker() { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + if (!isValidElement(propValue)) { + var propType = getPropType(propValue); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createElementTypeTypeChecker() { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + if (!ReactIs.isValidElementType(propValue)) { + var propType = getPropType(propValue); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createInstanceTypeChecker(expectedClass) { + function validate(props, propName, componentName, location, propFullName) { + if (!(props[propName] instanceof expectedClass)) { + var expectedClassName = expectedClass.name || ANONYMOUS; + var actualClassName = getClassName(props[propName]); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createEnumTypeChecker(expectedValues) { + if (!Array.isArray(expectedValues)) { + if (process.env.NODE_ENV !== 'production') { + if (arguments.length > 1) { + printWarning( + 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' + + 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).' + ); + } else { + printWarning('Invalid argument supplied to oneOf, expected an array.'); + } + } + return emptyFunctionThatReturnsNull; + } + + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + for (var i = 0; i < expectedValues.length; i++) { + if (is(propValue, expectedValues[i])) { + return null; + } + } + + var valuesString = JSON.stringify(expectedValues, function replacer(key, value) { + var type = getPreciseType(value); + if (type === 'symbol') { + return String(value); + } + return value; + }); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.')); + } + return createChainableTypeChecker(validate); + } + + function createObjectOfTypeChecker(typeChecker) { + function validate(props, propName, componentName, location, propFullName) { + if (typeof typeChecker !== 'function') { + return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.'); + } + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.')); + } + for (var key in propValue) { + if (has(propValue, key)) { + var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); + if (error instanceof Error) { + return error; + } + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createUnionTypeChecker(arrayOfTypeCheckers) { + if (!Array.isArray(arrayOfTypeCheckers)) { + process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0; + return emptyFunctionThatReturnsNull; + } + + for (var i = 0; i < arrayOfTypeCheckers.length; i++) { + var checker = arrayOfTypeCheckers[i]; + if (typeof checker !== 'function') { + printWarning( + 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' + + 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.' + ); + return emptyFunctionThatReturnsNull; + } + } + + function validate(props, propName, componentName, location, propFullName) { + for (var i = 0; i < arrayOfTypeCheckers.length; i++) { + var checker = arrayOfTypeCheckers[i]; + if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) { + return null; + } + } + + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.')); + } + return createChainableTypeChecker(validate); + } + + function createNodeChecker() { + function validate(props, propName, componentName, location, propFullName) { + if (!isNode(props[propName])) { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createShapeTypeChecker(shapeTypes) { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); + } + for (var key in shapeTypes) { + var checker = shapeTypes[key]; + if (!checker) { + continue; + } + var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); + if (error) { + return error; + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createStrictShapeTypeChecker(shapeTypes) { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); + } + // We need to check all keys in case some are required but missing from + // props. + var allKeys = assign({}, props[propName], shapeTypes); + for (var key in allKeys) { + var checker = shapeTypes[key]; + if (!checker) { + return new PropTypeError( + 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' + + '\nBad object: ' + JSON.stringify(props[propName], null, ' ') + + '\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ') + ); + } + var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); + if (error) { + return error; + } + } + return null; + } + + return createChainableTypeChecker(validate); + } + + function isNode(propValue) { + switch (typeof propValue) { + case 'number': + case 'string': + case 'undefined': + return true; + case 'boolean': + return !propValue; + case 'object': + if (Array.isArray(propValue)) { + return propValue.every(isNode); + } + if (propValue === null || isValidElement(propValue)) { + return true; + } + + var iteratorFn = getIteratorFn(propValue); + if (iteratorFn) { + var iterator = iteratorFn.call(propValue); + var step; + if (iteratorFn !== propValue.entries) { + while (!(step = iterator.next()).done) { + if (!isNode(step.value)) { + return false; + } + } + } else { + // Iterator will provide entry [k,v] tuples rather than values. + while (!(step = iterator.next()).done) { + var entry = step.value; + if (entry) { + if (!isNode(entry[1])) { + return false; + } + } + } + } + } else { + return false; + } + + return true; + default: + return false; + } + } + + function isSymbol(propType, propValue) { + // Native Symbol. + if (propType === 'symbol') { + return true; + } + + // falsy value can't be a Symbol + if (!propValue) { + return false; + } + + // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol' + if (propValue['@@toStringTag'] === 'Symbol') { + return true; + } + + // Fallback for non-spec compliant Symbols which are polyfilled. + if (typeof Symbol === 'function' && propValue instanceof Symbol) { + return true; + } + + return false; + } + + // Equivalent of `typeof` but with special handling for array and regexp. + function getPropType(propValue) { + var propType = typeof propValue; + if (Array.isArray(propValue)) { + return 'array'; + } + if (propValue instanceof RegExp) { + // Old webkits (at least until Android 4.0) return 'function' rather than + // 'object' for typeof a RegExp. We'll normalize this here so that /bla/ + // passes PropTypes.object. + return 'object'; + } + if (isSymbol(propType, propValue)) { + return 'symbol'; + } + return propType; + } + + // This handles more types than `getPropType`. Only used for error messages. + // See `createPrimitiveTypeChecker`. + function getPreciseType(propValue) { + if (typeof propValue === 'undefined' || propValue === null) { + return '' + propValue; + } + var propType = getPropType(propValue); + if (propType === 'object') { + if (propValue instanceof Date) { + return 'date'; + } else if (propValue instanceof RegExp) { + return 'regexp'; + } + } + return propType; + } + + // Returns a string that is postfixed to a warning about an invalid type. + // For example, "undefined" or "of type array" + function getPostfixForTypeWarning(value) { + var type = getPreciseType(value); + switch (type) { + case 'array': + case 'object': + return 'an ' + type; + case 'boolean': + case 'date': + case 'regexp': + return 'a ' + type; + default: + return type; + } + } + + // Returns class name of the object, if any. + function getClassName(propValue) { + if (!propValue.constructor || !propValue.constructor.name) { + return ANONYMOUS; + } + return propValue.constructor.name; + } + + ReactPropTypes.checkPropTypes = checkPropTypes; + ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache; + ReactPropTypes.PropTypes = ReactPropTypes; + + return ReactPropTypes; +}; diff --git a/node_modules/prop-types/index.js b/node_modules/prop-types/index.js new file mode 100644 index 0000000..e9ef51d --- /dev/null +++ b/node_modules/prop-types/index.js @@ -0,0 +1,19 @@ +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +if (process.env.NODE_ENV !== 'production') { + var ReactIs = require('react-is'); + + // By explicitly using `prop-types` you are opting into new development behavior. + // http://fb.me/prop-types-in-prod + var throwOnDirectAccess = true; + module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess); +} else { + // By explicitly using `prop-types` you are opting into new production behavior. + // http://fb.me/prop-types-in-prod + module.exports = require('./factoryWithThrowingShims')(); +} diff --git a/node_modules/prop-types/lib/ReactPropTypesSecret.js b/node_modules/prop-types/lib/ReactPropTypesSecret.js new file mode 100644 index 0000000..f54525e --- /dev/null +++ b/node_modules/prop-types/lib/ReactPropTypesSecret.js @@ -0,0 +1,12 @@ +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +'use strict'; + +var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; + +module.exports = ReactPropTypesSecret; diff --git a/node_modules/prop-types/package.json b/node_modules/prop-types/package.json new file mode 100644 index 0000000..6e2fd98 --- /dev/null +++ b/node_modules/prop-types/package.json @@ -0,0 +1,87 @@ +{ + "_from": "prop-types@^15.6.2", + "_id": "prop-types@15.7.2", + "_inBundle": false, + "_integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "_location": "/prop-types", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "prop-types@^15.6.2", + "name": "prop-types", + "escapedName": "prop-types", + "rawSpec": "^15.6.2", + "saveSpec": null, + "fetchSpec": "^15.6.2" + }, + "_requiredBy": [ + "/react-router", + "/react-router-dom" + ], + "_resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "_shasum": "52c41e75b8c87e72b9d9360e0206b99dcbffa6c5", + "_spec": "prop-types@^15.6.2", + "_where": "G:\\_comp_\\odsc\\orig\\AllNotes\\node_modules\\react-router-dom", + "browserify": { + "transform": [ + "loose-envify" + ] + }, + "bugs": { + "url": "https://github.com/facebook/prop-types/issues" + }, + "bundleDependencies": false, + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + }, + "deprecated": false, + "description": "Runtime type checking for React props and similar objects.", + "devDependencies": { + "babel-jest": "^19.0.0", + "babel-preset-react": "^6.24.1", + "browserify": "^16.2.3", + "bundle-collapser": "^1.2.1", + "eslint": "^5.13.0", + "jest": "^19.0.2", + "react": "^15.5.1", + "uglifyify": "^3.0.4", + "uglifyjs": "^2.4.10" + }, + "files": [ + "LICENSE", + "README.md", + "checkPropTypes.js", + "factory.js", + "factoryWithThrowingShims.js", + "factoryWithTypeCheckers.js", + "index.js", + "prop-types.js", + "prop-types.min.js", + "lib" + ], + "homepage": "https://facebook.github.io/react/", + "keywords": [ + "react" + ], + "license": "MIT", + "main": "index.js", + "name": "prop-types", + "repository": { + "type": "git", + "url": "git+https://github.com/facebook/prop-types.git" + }, + "scripts": { + "build": "yarn umd && yarn umd-min", + "lint": "eslint .", + "prepublish": "yarn build", + "pretest": "npm run lint", + "test": "npm run tests-only", + "tests-only": "jest", + "umd": "NODE_ENV=development browserify index.js -t loose-envify --standalone PropTypes -o prop-types.js", + "umd-min": "NODE_ENV=production browserify index.js -t loose-envify -t uglifyify --standalone PropTypes -p bundle-collapser/plugin -o | uglifyjs --compress unused,dead_code -o prop-types.min.js" + }, + "version": "15.7.2" +} diff --git a/node_modules/prop-types/prop-types.js b/node_modules/prop-types/prop-types.js new file mode 100644 index 0000000..867d699 --- /dev/null +++ b/node_modules/prop-types/prop-types.js @@ -0,0 +1,1337 @@ +(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.PropTypes = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o 1) { + printWarning( + 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' + + 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).' + ); + } else { + printWarning('Invalid argument supplied to oneOf, expected an array.'); + } + } + return emptyFunctionThatReturnsNull; + } + + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + for (var i = 0; i < expectedValues.length; i++) { + if (is(propValue, expectedValues[i])) { + return null; + } + } + + var valuesString = JSON.stringify(expectedValues, function replacer(key, value) { + var type = getPreciseType(value); + if (type === 'symbol') { + return String(value); + } + return value; + }); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.')); + } + return createChainableTypeChecker(validate); + } + + function createObjectOfTypeChecker(typeChecker) { + function validate(props, propName, componentName, location, propFullName) { + if (typeof typeChecker !== 'function') { + return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.'); + } + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.')); + } + for (var key in propValue) { + if (has(propValue, key)) { + var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); + if (error instanceof Error) { + return error; + } + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createUnionTypeChecker(arrayOfTypeCheckers) { + if (!Array.isArray(arrayOfTypeCheckers)) { + "development" !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0; + return emptyFunctionThatReturnsNull; + } + + for (var i = 0; i < arrayOfTypeCheckers.length; i++) { + var checker = arrayOfTypeCheckers[i]; + if (typeof checker !== 'function') { + printWarning( + 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' + + 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.' + ); + return emptyFunctionThatReturnsNull; + } + } + + function validate(props, propName, componentName, location, propFullName) { + for (var i = 0; i < arrayOfTypeCheckers.length; i++) { + var checker = arrayOfTypeCheckers[i]; + if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) { + return null; + } + } + + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.')); + } + return createChainableTypeChecker(validate); + } + + function createNodeChecker() { + function validate(props, propName, componentName, location, propFullName) { + if (!isNode(props[propName])) { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createShapeTypeChecker(shapeTypes) { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); + } + for (var key in shapeTypes) { + var checker = shapeTypes[key]; + if (!checker) { + continue; + } + var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); + if (error) { + return error; + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createStrictShapeTypeChecker(shapeTypes) { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); + } + // We need to check all keys in case some are required but missing from + // props. + var allKeys = assign({}, props[propName], shapeTypes); + for (var key in allKeys) { + var checker = shapeTypes[key]; + if (!checker) { + return new PropTypeError( + 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' + + '\nBad object: ' + JSON.stringify(props[propName], null, ' ') + + '\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ') + ); + } + var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); + if (error) { + return error; + } + } + return null; + } + + return createChainableTypeChecker(validate); + } + + function isNode(propValue) { + switch (typeof propValue) { + case 'number': + case 'string': + case 'undefined': + return true; + case 'boolean': + return !propValue; + case 'object': + if (Array.isArray(propValue)) { + return propValue.every(isNode); + } + if (propValue === null || isValidElement(propValue)) { + return true; + } + + var iteratorFn = getIteratorFn(propValue); + if (iteratorFn) { + var iterator = iteratorFn.call(propValue); + var step; + if (iteratorFn !== propValue.entries) { + while (!(step = iterator.next()).done) { + if (!isNode(step.value)) { + return false; + } + } + } else { + // Iterator will provide entry [k,v] tuples rather than values. + while (!(step = iterator.next()).done) { + var entry = step.value; + if (entry) { + if (!isNode(entry[1])) { + return false; + } + } + } + } + } else { + return false; + } + + return true; + default: + return false; + } + } + + function isSymbol(propType, propValue) { + // Native Symbol. + if (propType === 'symbol') { + return true; + } + + // falsy value can't be a Symbol + if (!propValue) { + return false; + } + + // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol' + if (propValue['@@toStringTag'] === 'Symbol') { + return true; + } + + // Fallback for non-spec compliant Symbols which are polyfilled. + if (typeof Symbol === 'function' && propValue instanceof Symbol) { + return true; + } + + return false; + } + + // Equivalent of `typeof` but with special handling for array and regexp. + function getPropType(propValue) { + var propType = typeof propValue; + if (Array.isArray(propValue)) { + return 'array'; + } + if (propValue instanceof RegExp) { + // Old webkits (at least until Android 4.0) return 'function' rather than + // 'object' for typeof a RegExp. We'll normalize this here so that /bla/ + // passes PropTypes.object. + return 'object'; + } + if (isSymbol(propType, propValue)) { + return 'symbol'; + } + return propType; + } + + // This handles more types than `getPropType`. Only used for error messages. + // See `createPrimitiveTypeChecker`. + function getPreciseType(propValue) { + if (typeof propValue === 'undefined' || propValue === null) { + return '' + propValue; + } + var propType = getPropType(propValue); + if (propType === 'object') { + if (propValue instanceof Date) { + return 'date'; + } else if (propValue instanceof RegExp) { + return 'regexp'; + } + } + return propType; + } + + // Returns a string that is postfixed to a warning about an invalid type. + // For example, "undefined" or "of type array" + function getPostfixForTypeWarning(value) { + var type = getPreciseType(value); + switch (type) { + case 'array': + case 'object': + return 'an ' + type; + case 'boolean': + case 'date': + case 'regexp': + return 'a ' + type; + default: + return type; + } + } + + // Returns class name of the object, if any. + function getClassName(propValue) { + if (!propValue.constructor || !propValue.constructor.name) { + return ANONYMOUS; + } + return propValue.constructor.name; + } + + ReactPropTypes.checkPropTypes = checkPropTypes; + ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache; + ReactPropTypes.PropTypes = ReactPropTypes; + + return ReactPropTypes; +}; + +},{"./checkPropTypes":1,"./lib/ReactPropTypesSecret":5,"object-assign":6,"react-is":10}],4:[function(require,module,exports){ +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +if ("development" !== 'production') { + var ReactIs = require('react-is'); + + // By explicitly using `prop-types` you are opting into new development behavior. + // http://fb.me/prop-types-in-prod + var throwOnDirectAccess = true; + module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess); +} else { + // By explicitly using `prop-types` you are opting into new production behavior. + // http://fb.me/prop-types-in-prod + module.exports = require('./factoryWithThrowingShims')(); +} + +},{"./factoryWithThrowingShims":2,"./factoryWithTypeCheckers":3,"react-is":10}],5:[function(require,module,exports){ +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +'use strict'; + +var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; + +module.exports = ReactPropTypesSecret; + +},{}],6:[function(require,module,exports){ +/* +object-assign +(c) Sindre Sorhus +@license MIT +*/ + +'use strict'; +/* eslint-disable no-unused-vars */ +var getOwnPropertySymbols = Object.getOwnPropertySymbols; +var hasOwnProperty = Object.prototype.hasOwnProperty; +var propIsEnumerable = Object.prototype.propertyIsEnumerable; + +function toObject(val) { + if (val === null || val === undefined) { + throw new TypeError('Object.assign cannot be called with null or undefined'); + } + + return Object(val); +} + +function shouldUseNative() { + try { + if (!Object.assign) { + return false; + } + + // Detect buggy property enumeration order in older V8 versions. + + // https://bugs.chromium.org/p/v8/issues/detail?id=4118 + var test1 = new String('abc'); // eslint-disable-line no-new-wrappers + test1[5] = 'de'; + if (Object.getOwnPropertyNames(test1)[0] === '5') { + return false; + } + + // https://bugs.chromium.org/p/v8/issues/detail?id=3056 + var test2 = {}; + for (var i = 0; i < 10; i++) { + test2['_' + String.fromCharCode(i)] = i; + } + var order2 = Object.getOwnPropertyNames(test2).map(function (n) { + return test2[n]; + }); + if (order2.join('') !== '0123456789') { + return false; + } + + // https://bugs.chromium.org/p/v8/issues/detail?id=3056 + var test3 = {}; + 'abcdefghijklmnopqrst'.split('').forEach(function (letter) { + test3[letter] = letter; + }); + if (Object.keys(Object.assign({}, test3)).join('') !== + 'abcdefghijklmnopqrst') { + return false; + } + + return true; + } catch (err) { + // We don't expect any of the above to throw, but better to be safe. + return false; + } +} + +module.exports = shouldUseNative() ? Object.assign : function (target, source) { + var from; + var to = toObject(target); + var symbols; + + for (var s = 1; s < arguments.length; s++) { + from = Object(arguments[s]); + + for (var key in from) { + if (hasOwnProperty.call(from, key)) { + to[key] = from[key]; + } + } + + if (getOwnPropertySymbols) { + symbols = getOwnPropertySymbols(from); + for (var i = 0; i < symbols.length; i++) { + if (propIsEnumerable.call(from, symbols[i])) { + to[symbols[i]] = from[symbols[i]]; + } + } + } + } + + return to; +}; + +},{}],7:[function(require,module,exports){ +// shim for using process in browser +var process = module.exports = {}; + +// cached from whatever global is present so that test runners that stub it +// don't break things. But we need to wrap it in a try catch in case it is +// wrapped in strict mode code which doesn't define any globals. It's inside a +// function because try/catches deoptimize in certain engines. + +var cachedSetTimeout; +var cachedClearTimeout; + +function defaultSetTimout() { + throw new Error('setTimeout has not been defined'); +} +function defaultClearTimeout () { + throw new Error('clearTimeout has not been defined'); +} +(function () { + try { + if (typeof setTimeout === 'function') { + cachedSetTimeout = setTimeout; + } else { + cachedSetTimeout = defaultSetTimout; + } + } catch (e) { + cachedSetTimeout = defaultSetTimout; + } + try { + if (typeof clearTimeout === 'function') { + cachedClearTimeout = clearTimeout; + } else { + cachedClearTimeout = defaultClearTimeout; + } + } catch (e) { + cachedClearTimeout = defaultClearTimeout; + } +} ()) +function runTimeout(fun) { + if (cachedSetTimeout === setTimeout) { + //normal enviroments in sane situations + return setTimeout(fun, 0); + } + // if setTimeout wasn't available but was latter defined + if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { + cachedSetTimeout = setTimeout; + return setTimeout(fun, 0); + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedSetTimeout(fun, 0); + } catch(e){ + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedSetTimeout.call(null, fun, 0); + } catch(e){ + // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error + return cachedSetTimeout.call(this, fun, 0); + } + } + + +} +function runClearTimeout(marker) { + if (cachedClearTimeout === clearTimeout) { + //normal enviroments in sane situations + return clearTimeout(marker); + } + // if clearTimeout wasn't available but was latter defined + if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { + cachedClearTimeout = clearTimeout; + return clearTimeout(marker); + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedClearTimeout(marker); + } catch (e){ + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedClearTimeout.call(null, marker); + } catch (e){ + // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. + // Some versions of I.E. have different rules for clearTimeout vs setTimeout + return cachedClearTimeout.call(this, marker); + } + } + + + +} +var queue = []; +var draining = false; +var currentQueue; +var queueIndex = -1; + +function cleanUpNextTick() { + if (!draining || !currentQueue) { + return; + } + draining = false; + if (currentQueue.length) { + queue = currentQueue.concat(queue); + } else { + queueIndex = -1; + } + if (queue.length) { + drainQueue(); + } +} + +function drainQueue() { + if (draining) { + return; + } + var timeout = runTimeout(cleanUpNextTick); + draining = true; + + var len = queue.length; + while(len) { + currentQueue = queue; + queue = []; + while (++queueIndex < len) { + if (currentQueue) { + currentQueue[queueIndex].run(); + } + } + queueIndex = -1; + len = queue.length; + } + currentQueue = null; + draining = false; + runClearTimeout(timeout); +} + +process.nextTick = function (fun) { + var args = new Array(arguments.length - 1); + if (arguments.length > 1) { + for (var i = 1; i < arguments.length; i++) { + args[i - 1] = arguments[i]; + } + } + queue.push(new Item(fun, args)); + if (queue.length === 1 && !draining) { + runTimeout(drainQueue); + } +}; + +// v8 likes predictible objects +function Item(fun, array) { + this.fun = fun; + this.array = array; +} +Item.prototype.run = function () { + this.fun.apply(null, this.array); +}; +process.title = 'browser'; +process.browser = true; +process.env = {}; +process.argv = []; +process.version = ''; // empty string to avoid regexp issues +process.versions = {}; + +function noop() {} + +process.on = noop; +process.addListener = noop; +process.once = noop; +process.off = noop; +process.removeListener = noop; +process.removeAllListeners = noop; +process.emit = noop; +process.prependListener = noop; +process.prependOnceListener = noop; + +process.listeners = function (name) { return [] } + +process.binding = function (name) { + throw new Error('process.binding is not supported'); +}; + +process.cwd = function () { return '/' }; +process.chdir = function (dir) { + throw new Error('process.chdir is not supported'); +}; +process.umask = function() { return 0; }; + +},{}],8:[function(require,module,exports){ +(function (process){ +/** @license React v16.8.1 + * react-is.development.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +'use strict'; + + + +if (process.env.NODE_ENV !== "production") { + (function() { +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +// The Symbol used to tag the ReactElement-like types. If there is no native Symbol +// nor polyfill, then a plain number is used for performance. +var hasSymbol = typeof Symbol === 'function' && Symbol.for; + +var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7; +var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca; +var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb; +var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc; +var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2; +var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd; +var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; +var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf; +var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf; +var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0; +var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1; +var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3; +var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4; + +function isValidElementType(type) { + return typeof type === 'string' || typeof type === 'function' || + // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill. + type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE); +} + +/** + * Forked from fbjs/warning: + * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js + * + * Only change is we use console.warn instead of console.error, + * and do nothing when 'console' is not supported. + * This really simplifies the code. + * --- + * Similar to invariant but only logs a warning if the condition is not met. + * This can be used to log issues in development environments in critical + * paths. Removing the logging code for production environments will keep the + * same logic and follow the same code paths. + */ + +var lowPriorityWarning = function () {}; + +{ + var printWarning = function (format) { + for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + + var argIndex = 0; + var message = 'Warning: ' + format.replace(/%s/g, function () { + return args[argIndex++]; + }); + if (typeof console !== 'undefined') { + console.warn(message); + } + try { + // --- Welcome to debugging React --- + // This error was thrown as a convenience so that you can use this stack + // to find the callsite that caused this warning to fire. + throw new Error(message); + } catch (x) {} + }; + + lowPriorityWarning = function (condition, format) { + if (format === undefined) { + throw new Error('`lowPriorityWarning(condition, format, ...args)` requires a warning ' + 'message argument'); + } + if (!condition) { + for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) { + args[_key2 - 2] = arguments[_key2]; + } + + printWarning.apply(undefined, [format].concat(args)); + } + }; +} + +var lowPriorityWarning$1 = lowPriorityWarning; + +function typeOf(object) { + if (typeof object === 'object' && object !== null) { + var $$typeof = object.$$typeof; + switch ($$typeof) { + case REACT_ELEMENT_TYPE: + var type = object.type; + + switch (type) { + case REACT_ASYNC_MODE_TYPE: + case REACT_CONCURRENT_MODE_TYPE: + case REACT_FRAGMENT_TYPE: + case REACT_PROFILER_TYPE: + case REACT_STRICT_MODE_TYPE: + case REACT_SUSPENSE_TYPE: + return type; + default: + var $$typeofType = type && type.$$typeof; + + switch ($$typeofType) { + case REACT_CONTEXT_TYPE: + case REACT_FORWARD_REF_TYPE: + case REACT_PROVIDER_TYPE: + return $$typeofType; + default: + return $$typeof; + } + } + case REACT_LAZY_TYPE: + case REACT_MEMO_TYPE: + case REACT_PORTAL_TYPE: + return $$typeof; + } + } + + return undefined; +} + +// AsyncMode is deprecated along with isAsyncMode +var AsyncMode = REACT_ASYNC_MODE_TYPE; +var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE; +var ContextConsumer = REACT_CONTEXT_TYPE; +var ContextProvider = REACT_PROVIDER_TYPE; +var Element = REACT_ELEMENT_TYPE; +var ForwardRef = REACT_FORWARD_REF_TYPE; +var Fragment = REACT_FRAGMENT_TYPE; +var Lazy = REACT_LAZY_TYPE; +var Memo = REACT_MEMO_TYPE; +var Portal = REACT_PORTAL_TYPE; +var Profiler = REACT_PROFILER_TYPE; +var StrictMode = REACT_STRICT_MODE_TYPE; +var Suspense = REACT_SUSPENSE_TYPE; + +var hasWarnedAboutDeprecatedIsAsyncMode = false; + +// AsyncMode should be deprecated +function isAsyncMode(object) { + { + if (!hasWarnedAboutDeprecatedIsAsyncMode) { + hasWarnedAboutDeprecatedIsAsyncMode = true; + lowPriorityWarning$1(false, 'The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.'); + } + } + return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE; +} +function isConcurrentMode(object) { + return typeOf(object) === REACT_CONCURRENT_MODE_TYPE; +} +function isContextConsumer(object) { + return typeOf(object) === REACT_CONTEXT_TYPE; +} +function isContextProvider(object) { + return typeOf(object) === REACT_PROVIDER_TYPE; +} +function isElement(object) { + return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE; +} +function isForwardRef(object) { + return typeOf(object) === REACT_FORWARD_REF_TYPE; +} +function isFragment(object) { + return typeOf(object) === REACT_FRAGMENT_TYPE; +} +function isLazy(object) { + return typeOf(object) === REACT_LAZY_TYPE; +} +function isMemo(object) { + return typeOf(object) === REACT_MEMO_TYPE; +} +function isPortal(object) { + return typeOf(object) === REACT_PORTAL_TYPE; +} +function isProfiler(object) { + return typeOf(object) === REACT_PROFILER_TYPE; +} +function isStrictMode(object) { + return typeOf(object) === REACT_STRICT_MODE_TYPE; +} +function isSuspense(object) { + return typeOf(object) === REACT_SUSPENSE_TYPE; +} + +exports.typeOf = typeOf; +exports.AsyncMode = AsyncMode; +exports.ConcurrentMode = ConcurrentMode; +exports.ContextConsumer = ContextConsumer; +exports.ContextProvider = ContextProvider; +exports.Element = Element; +exports.ForwardRef = ForwardRef; +exports.Fragment = Fragment; +exports.Lazy = Lazy; +exports.Memo = Memo; +exports.Portal = Portal; +exports.Profiler = Profiler; +exports.StrictMode = StrictMode; +exports.Suspense = Suspense; +exports.isValidElementType = isValidElementType; +exports.isAsyncMode = isAsyncMode; +exports.isConcurrentMode = isConcurrentMode; +exports.isContextConsumer = isContextConsumer; +exports.isContextProvider = isContextProvider; +exports.isElement = isElement; +exports.isForwardRef = isForwardRef; +exports.isFragment = isFragment; +exports.isLazy = isLazy; +exports.isMemo = isMemo; +exports.isPortal = isPortal; +exports.isProfiler = isProfiler; +exports.isStrictMode = isStrictMode; +exports.isSuspense = isSuspense; + })(); +} + +}).call(this,require('_process')) +},{"_process":7}],9:[function(require,module,exports){ +/** @license React v16.8.1 + * react-is.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +'use strict';Object.defineProperty(exports,"__esModule",{value:!0}); +var b="function"===typeof Symbol&&Symbol.for,c=b?Symbol.for("react.element"):60103,d=b?Symbol.for("react.portal"):60106,e=b?Symbol.for("react.fragment"):60107,f=b?Symbol.for("react.strict_mode"):60108,g=b?Symbol.for("react.profiler"):60114,h=b?Symbol.for("react.provider"):60109,k=b?Symbol.for("react.context"):60110,l=b?Symbol.for("react.async_mode"):60111,m=b?Symbol.for("react.concurrent_mode"):60111,n=b?Symbol.for("react.forward_ref"):60112,p=b?Symbol.for("react.suspense"):60113,q=b?Symbol.for("react.memo"): +60115,r=b?Symbol.for("react.lazy"):60116;function t(a){if("object"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case h:return a;default:return u}}case r:case q:case d:return u}}}function v(a){return t(a)===m}exports.typeOf=t;exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n; +exports.Fragment=e;exports.Lazy=r;exports.Memo=q;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isValidElementType=function(a){return"string"===typeof a||"function"===typeof a||a===e||a===m||a===g||a===f||a===p||"object"===typeof a&&null!==a&&(a.$$typeof===r||a.$$typeof===q||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n)};exports.isAsyncMode=function(a){return v(a)||t(a)===l};exports.isConcurrentMode=v;exports.isContextConsumer=function(a){return t(a)===k}; +exports.isContextProvider=function(a){return t(a)===h};exports.isElement=function(a){return"object"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return t(a)===n};exports.isFragment=function(a){return t(a)===e};exports.isLazy=function(a){return t(a)===r};exports.isMemo=function(a){return t(a)===q};exports.isPortal=function(a){return t(a)===d};exports.isProfiler=function(a){return t(a)===g};exports.isStrictMode=function(a){return t(a)===f}; +exports.isSuspense=function(a){return t(a)===p}; + +},{}],10:[function(require,module,exports){ +(function (process){ +'use strict'; + +if (process.env.NODE_ENV === 'production') { + module.exports = require('./cjs/react-is.production.min.js'); +} else { + module.exports = require('./cjs/react-is.development.js'); +} + +}).call(this,require('_process')) +},{"./cjs/react-is.development.js":8,"./cjs/react-is.production.min.js":9,"_process":7}]},{},[4])(4) +}); \ No newline at end of file diff --git a/node_modules/prop-types/prop-types.min.js b/node_modules/prop-types/prop-types.min.js new file mode 100644 index 0000000..c902433 --- /dev/null +++ b/node_modules/prop-types/prop-types.min.js @@ -0,0 +1 @@ +!function(f){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=f();else if("function"==typeof define&&define.amd)define([],f);else{var g;g="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,g.PropTypes=f()}}(function(){return function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a="function"==typeof require&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n||e)},l,l.exports,e,t,n,r)}return n[o].exports}for(var i="function"==typeof require&&require,o=0;o React.createElement("div"); + +const ForwardRefComponent = React.forwardRef((props, ref) => + React.createElement(Component, { forwardedRef: ref, ...props }) +); + +const Context = React.createContext(false); + +ReactIs.isValidElementType("div"); // true +ReactIs.isValidElementType(ClassComponent); // true +ReactIs.isValidElementType(FunctionComponent); // true +ReactIs.isValidElementType(ForwardRefComponent); // true +ReactIs.isValidElementType(Context.Provider); // true +ReactIs.isValidElementType(Context.Consumer); // true +ReactIs.isValidElementType(React.createFactory("div")); // true +``` + +### Determining an Element's Type + +#### Context + +```js +import React from "react"; +import * as ReactIs from 'react-is'; + +const ThemeContext = React.createContext("blue"); + +ReactIs.isContextConsumer(); // true +ReactIs.isContextProvider(); // true +ReactIs.typeOf() === ReactIs.ContextProvider; // true +ReactIs.typeOf() === ReactIs.ContextConsumer; // true +``` + +#### Element + +```js +import React from "react"; +import * as ReactIs from 'react-is'; + +ReactIs.isElement(
); // true +ReactIs.typeOf(
) === ReactIs.Element; // true +``` + +#### Fragment + +```js +import React from "react"; +import * as ReactIs from 'react-is'; + +ReactIs.isFragment(<>); // true +ReactIs.typeOf(<>) === ReactIs.Fragment; // true +``` + +#### Portal + +```js +import React from "react"; +import ReactDOM from "react-dom"; +import * as ReactIs from 'react-is'; + +const div = document.createElement("div"); +const portal = ReactDOM.createPortal(
, div); + +ReactIs.isPortal(portal); // true +ReactIs.typeOf(portal) === ReactIs.Portal; // true +``` + +#### StrictMode + +```js +import React from "react"; +import * as ReactIs from 'react-is'; + +ReactIs.isStrictMode(); // true +ReactIs.typeOf() === ReactIs.StrictMode; // true +``` diff --git a/node_modules/react-is/build-info.json b/node_modules/react-is/build-info.json new file mode 100644 index 0000000..4094da6 --- /dev/null +++ b/node_modules/react-is/build-info.json @@ -0,0 +1,8 @@ +{ + "branch": "pull/18344", + "buildNumber": "106499", + "checksum": "7fe5a2e", + "commit": "da834083c", + "environment": "ci", + "reactVersion": "16.12.0-da834083c" +} diff --git a/node_modules/react-is/cjs/react-is.development.js b/node_modules/react-is/cjs/react-is.development.js new file mode 100644 index 0000000..8a80b76 --- /dev/null +++ b/node_modules/react-is/cjs/react-is.development.js @@ -0,0 +1,181 @@ +/** @license React v16.13.1 + * react-is.development.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +'use strict'; + + + +if (process.env.NODE_ENV !== "production") { + (function() { +'use strict'; + +// The Symbol used to tag the ReactElement-like types. If there is no native Symbol +// nor polyfill, then a plain number is used for performance. +var hasSymbol = typeof Symbol === 'function' && Symbol.for; +var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7; +var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca; +var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb; +var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc; +var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2; +var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd; +var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary +// (unstable) APIs that have been removed. Can we remove the symbols? + +var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf; +var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf; +var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0; +var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1; +var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8; +var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3; +var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4; +var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9; +var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5; +var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6; +var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7; + +function isValidElementType(type) { + return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill. + type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE); +} + +function typeOf(object) { + if (typeof object === 'object' && object !== null) { + var $$typeof = object.$$typeof; + + switch ($$typeof) { + case REACT_ELEMENT_TYPE: + var type = object.type; + + switch (type) { + case REACT_ASYNC_MODE_TYPE: + case REACT_CONCURRENT_MODE_TYPE: + case REACT_FRAGMENT_TYPE: + case REACT_PROFILER_TYPE: + case REACT_STRICT_MODE_TYPE: + case REACT_SUSPENSE_TYPE: + return type; + + default: + var $$typeofType = type && type.$$typeof; + + switch ($$typeofType) { + case REACT_CONTEXT_TYPE: + case REACT_FORWARD_REF_TYPE: + case REACT_LAZY_TYPE: + case REACT_MEMO_TYPE: + case REACT_PROVIDER_TYPE: + return $$typeofType; + + default: + return $$typeof; + } + + } + + case REACT_PORTAL_TYPE: + return $$typeof; + } + } + + return undefined; +} // AsyncMode is deprecated along with isAsyncMode + +var AsyncMode = REACT_ASYNC_MODE_TYPE; +var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE; +var ContextConsumer = REACT_CONTEXT_TYPE; +var ContextProvider = REACT_PROVIDER_TYPE; +var Element = REACT_ELEMENT_TYPE; +var ForwardRef = REACT_FORWARD_REF_TYPE; +var Fragment = REACT_FRAGMENT_TYPE; +var Lazy = REACT_LAZY_TYPE; +var Memo = REACT_MEMO_TYPE; +var Portal = REACT_PORTAL_TYPE; +var Profiler = REACT_PROFILER_TYPE; +var StrictMode = REACT_STRICT_MODE_TYPE; +var Suspense = REACT_SUSPENSE_TYPE; +var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated + +function isAsyncMode(object) { + { + if (!hasWarnedAboutDeprecatedIsAsyncMode) { + hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint + + console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.'); + } + } + + return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE; +} +function isConcurrentMode(object) { + return typeOf(object) === REACT_CONCURRENT_MODE_TYPE; +} +function isContextConsumer(object) { + return typeOf(object) === REACT_CONTEXT_TYPE; +} +function isContextProvider(object) { + return typeOf(object) === REACT_PROVIDER_TYPE; +} +function isElement(object) { + return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE; +} +function isForwardRef(object) { + return typeOf(object) === REACT_FORWARD_REF_TYPE; +} +function isFragment(object) { + return typeOf(object) === REACT_FRAGMENT_TYPE; +} +function isLazy(object) { + return typeOf(object) === REACT_LAZY_TYPE; +} +function isMemo(object) { + return typeOf(object) === REACT_MEMO_TYPE; +} +function isPortal(object) { + return typeOf(object) === REACT_PORTAL_TYPE; +} +function isProfiler(object) { + return typeOf(object) === REACT_PROFILER_TYPE; +} +function isStrictMode(object) { + return typeOf(object) === REACT_STRICT_MODE_TYPE; +} +function isSuspense(object) { + return typeOf(object) === REACT_SUSPENSE_TYPE; +} + +exports.AsyncMode = AsyncMode; +exports.ConcurrentMode = ConcurrentMode; +exports.ContextConsumer = ContextConsumer; +exports.ContextProvider = ContextProvider; +exports.Element = Element; +exports.ForwardRef = ForwardRef; +exports.Fragment = Fragment; +exports.Lazy = Lazy; +exports.Memo = Memo; +exports.Portal = Portal; +exports.Profiler = Profiler; +exports.StrictMode = StrictMode; +exports.Suspense = Suspense; +exports.isAsyncMode = isAsyncMode; +exports.isConcurrentMode = isConcurrentMode; +exports.isContextConsumer = isContextConsumer; +exports.isContextProvider = isContextProvider; +exports.isElement = isElement; +exports.isForwardRef = isForwardRef; +exports.isFragment = isFragment; +exports.isLazy = isLazy; +exports.isMemo = isMemo; +exports.isPortal = isPortal; +exports.isProfiler = isProfiler; +exports.isStrictMode = isStrictMode; +exports.isSuspense = isSuspense; +exports.isValidElementType = isValidElementType; +exports.typeOf = typeOf; + })(); +} diff --git a/node_modules/react-is/cjs/react-is.production.min.js b/node_modules/react-is/cjs/react-is.production.min.js new file mode 100644 index 0000000..3e83c7a --- /dev/null +++ b/node_modules/react-is/cjs/react-is.production.min.js @@ -0,0 +1,15 @@ +/** @license React v16.13.1 + * react-is.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +'use strict';var b="function"===typeof Symbol&&Symbol.for,c=b?Symbol.for("react.element"):60103,d=b?Symbol.for("react.portal"):60106,e=b?Symbol.for("react.fragment"):60107,f=b?Symbol.for("react.strict_mode"):60108,g=b?Symbol.for("react.profiler"):60114,h=b?Symbol.for("react.provider"):60109,k=b?Symbol.for("react.context"):60110,l=b?Symbol.for("react.async_mode"):60111,m=b?Symbol.for("react.concurrent_mode"):60111,n=b?Symbol.for("react.forward_ref"):60112,p=b?Symbol.for("react.suspense"):60113,q=b? +Symbol.for("react.suspense_list"):60120,r=b?Symbol.for("react.memo"):60115,t=b?Symbol.for("react.lazy"):60116,v=b?Symbol.for("react.block"):60121,w=b?Symbol.for("react.fundamental"):60117,x=b?Symbol.for("react.responder"):60118,y=b?Symbol.for("react.scope"):60119; +function z(a){if("object"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d; +exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return"object"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t}; +exports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p}; +exports.isValidElementType=function(a){return"string"===typeof a||"function"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||"object"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z; diff --git a/node_modules/react-is/index.js b/node_modules/react-is/index.js new file mode 100644 index 0000000..3ae098d --- /dev/null +++ b/node_modules/react-is/index.js @@ -0,0 +1,7 @@ +'use strict'; + +if (process.env.NODE_ENV === 'production') { + module.exports = require('./cjs/react-is.production.min.js'); +} else { + module.exports = require('./cjs/react-is.development.js'); +} diff --git a/node_modules/react-is/package.json b/node_modules/react-is/package.json new file mode 100644 index 0000000..f4086d9 --- /dev/null +++ b/node_modules/react-is/package.json @@ -0,0 +1,54 @@ +{ + "_from": "react-is@^16.8.1", + "_id": "react-is@16.13.1", + "_inBundle": false, + "_integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "_location": "/react-is", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "react-is@^16.8.1", + "name": "react-is", + "escapedName": "react-is", + "rawSpec": "^16.8.1", + "saveSpec": null, + "fetchSpec": "^16.8.1" + }, + "_requiredBy": [ + "/hoist-non-react-statics", + "/prop-types", + "/react-router" + ], + "_resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "_shasum": "789729a4dc36de2999dc156dd6c1d9c18cea56a4", + "_spec": "react-is@^16.8.1", + "_where": "G:\\_comp_\\odsc\\orig\\AllNotes\\node_modules\\prop-types", + "bugs": { + "url": "https://github.com/facebook/react/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Brand checking of React Elements.", + "files": [ + "LICENSE", + "README.md", + "build-info.json", + "index.js", + "cjs/", + "umd/" + ], + "homepage": "https://reactjs.org/", + "keywords": [ + "react" + ], + "license": "MIT", + "main": "index.js", + "name": "react-is", + "repository": { + "type": "git", + "url": "git+https://github.com/facebook/react.git", + "directory": "packages/react-is" + }, + "version": "16.13.1" +} diff --git a/node_modules/react-is/umd/react-is.development.js b/node_modules/react-is/umd/react-is.development.js new file mode 100644 index 0000000..a6bc018 --- /dev/null +++ b/node_modules/react-is/umd/react-is.development.js @@ -0,0 +1,181 @@ +/** @license React v16.13.1 + * react-is.development.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +'use strict'; + +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : + typeof define === 'function' && define.amd ? define(['exports'], factory) : + (global = global || self, factory(global.ReactIs = {})); +}(this, (function (exports) { 'use strict'; + + // The Symbol used to tag the ReactElement-like types. If there is no native Symbol + // nor polyfill, then a plain number is used for performance. + var hasSymbol = typeof Symbol === 'function' && Symbol.for; + var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7; + var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca; + var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb; + var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc; + var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2; + var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd; + var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary + // (unstable) APIs that have been removed. Can we remove the symbols? + + var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf; + var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf; + var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0; + var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1; + var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8; + var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3; + var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4; + var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9; + var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5; + var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6; + var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7; + + function isValidElementType(type) { + return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill. + type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE); + } + + function typeOf(object) { + if (typeof object === 'object' && object !== null) { + var $$typeof = object.$$typeof; + + switch ($$typeof) { + case REACT_ELEMENT_TYPE: + var type = object.type; + + switch (type) { + case REACT_ASYNC_MODE_TYPE: + case REACT_CONCURRENT_MODE_TYPE: + case REACT_FRAGMENT_TYPE: + case REACT_PROFILER_TYPE: + case REACT_STRICT_MODE_TYPE: + case REACT_SUSPENSE_TYPE: + return type; + + default: + var $$typeofType = type && type.$$typeof; + + switch ($$typeofType) { + case REACT_CONTEXT_TYPE: + case REACT_FORWARD_REF_TYPE: + case REACT_LAZY_TYPE: + case REACT_MEMO_TYPE: + case REACT_PROVIDER_TYPE: + return $$typeofType; + + default: + return $$typeof; + } + + } + + case REACT_PORTAL_TYPE: + return $$typeof; + } + } + + return undefined; + } // AsyncMode is deprecated along with isAsyncMode + + var AsyncMode = REACT_ASYNC_MODE_TYPE; + var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE; + var ContextConsumer = REACT_CONTEXT_TYPE; + var ContextProvider = REACT_PROVIDER_TYPE; + var Element = REACT_ELEMENT_TYPE; + var ForwardRef = REACT_FORWARD_REF_TYPE; + var Fragment = REACT_FRAGMENT_TYPE; + var Lazy = REACT_LAZY_TYPE; + var Memo = REACT_MEMO_TYPE; + var Portal = REACT_PORTAL_TYPE; + var Profiler = REACT_PROFILER_TYPE; + var StrictMode = REACT_STRICT_MODE_TYPE; + var Suspense = REACT_SUSPENSE_TYPE; + var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated + + function isAsyncMode(object) { + { + if (!hasWarnedAboutDeprecatedIsAsyncMode) { + hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint + + console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.'); + } + } + + return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE; + } + function isConcurrentMode(object) { + return typeOf(object) === REACT_CONCURRENT_MODE_TYPE; + } + function isContextConsumer(object) { + return typeOf(object) === REACT_CONTEXT_TYPE; + } + function isContextProvider(object) { + return typeOf(object) === REACT_PROVIDER_TYPE; + } + function isElement(object) { + return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE; + } + function isForwardRef(object) { + return typeOf(object) === REACT_FORWARD_REF_TYPE; + } + function isFragment(object) { + return typeOf(object) === REACT_FRAGMENT_TYPE; + } + function isLazy(object) { + return typeOf(object) === REACT_LAZY_TYPE; + } + function isMemo(object) { + return typeOf(object) === REACT_MEMO_TYPE; + } + function isPortal(object) { + return typeOf(object) === REACT_PORTAL_TYPE; + } + function isProfiler(object) { + return typeOf(object) === REACT_PROFILER_TYPE; + } + function isStrictMode(object) { + return typeOf(object) === REACT_STRICT_MODE_TYPE; + } + function isSuspense(object) { + return typeOf(object) === REACT_SUSPENSE_TYPE; + } + + exports.AsyncMode = AsyncMode; + exports.ConcurrentMode = ConcurrentMode; + exports.ContextConsumer = ContextConsumer; + exports.ContextProvider = ContextProvider; + exports.Element = Element; + exports.ForwardRef = ForwardRef; + exports.Fragment = Fragment; + exports.Lazy = Lazy; + exports.Memo = Memo; + exports.Portal = Portal; + exports.Profiler = Profiler; + exports.StrictMode = StrictMode; + exports.Suspense = Suspense; + exports.isAsyncMode = isAsyncMode; + exports.isConcurrentMode = isConcurrentMode; + exports.isContextConsumer = isContextConsumer; + exports.isContextProvider = isContextProvider; + exports.isElement = isElement; + exports.isForwardRef = isForwardRef; + exports.isFragment = isFragment; + exports.isLazy = isLazy; + exports.isMemo = isMemo; + exports.isPortal = isPortal; + exports.isProfiler = isProfiler; + exports.isStrictMode = isStrictMode; + exports.isSuspense = isSuspense; + exports.isValidElementType = isValidElementType; + exports.typeOf = typeOf; + +}))); diff --git a/node_modules/react-is/umd/react-is.production.min.js b/node_modules/react-is/umd/react-is.production.min.js new file mode 100644 index 0000000..62fe6b2 --- /dev/null +++ b/node_modules/react-is/umd/react-is.production.min.js @@ -0,0 +1,13 @@ +/** @license React v16.13.1 + * react-is.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +'use strict';(function(b,d){"object"===typeof exports&&"undefined"!==typeof module?d(exports):"function"===typeof define&&define.amd?define(["exports"],d):(b=b||self,d(b.ReactIs={}))})(this,function(b){function d(a){if("object"===typeof a&&null!==a){var b=a.$$typeof;switch(b){case r:switch(a=a.type,a){case t:case e:case f:case g:case h:case k:return a;default:switch(a=a&&a.$$typeof,a){case l:case m:case n:case p:case q:return a;default:return b}}case u:return b}}}function v(a){return d(a)===e}var c= +"function"===typeof Symbol&&Symbol.for,r=c?Symbol.for("react.element"):60103,u=c?Symbol.for("react.portal"):60106,f=c?Symbol.for("react.fragment"):60107,h=c?Symbol.for("react.strict_mode"):60108,g=c?Symbol.for("react.profiler"):60114,q=c?Symbol.for("react.provider"):60109,l=c?Symbol.for("react.context"):60110,t=c?Symbol.for("react.async_mode"):60111,e=c?Symbol.for("react.concurrent_mode"):60111,m=c?Symbol.for("react.forward_ref"):60112,k=c?Symbol.for("react.suspense"):60113,w=c?Symbol.for("react.suspense_list"): +60120,p=c?Symbol.for("react.memo"):60115,n=c?Symbol.for("react.lazy"):60116,x=c?Symbol.for("react.block"):60121,y=c?Symbol.for("react.fundamental"):60117,z=c?Symbol.for("react.responder"):60118,A=c?Symbol.for("react.scope"):60119;b.AsyncMode=t;b.ConcurrentMode=e;b.ContextConsumer=l;b.ContextProvider=q;b.Element=r;b.ForwardRef=m;b.Fragment=f;b.Lazy=n;b.Memo=p;b.Portal=u;b.Profiler=g;b.StrictMode=h;b.Suspense=k;b.isAsyncMode=function(a){return v(a)||d(a)===t};b.isConcurrentMode=v;b.isContextConsumer= +function(a){return d(a)===l};b.isContextProvider=function(a){return d(a)===q};b.isElement=function(a){return"object"===typeof a&&null!==a&&a.$$typeof===r};b.isForwardRef=function(a){return d(a)===m};b.isFragment=function(a){return d(a)===f};b.isLazy=function(a){return d(a)===n};b.isMemo=function(a){return d(a)===p};b.isPortal=function(a){return d(a)===u};b.isProfiler=function(a){return d(a)===g};b.isStrictMode=function(a){return d(a)===h};b.isSuspense=function(a){return d(a)===k};b.isValidElementType= +function(a){return"string"===typeof a||"function"===typeof a||a===f||a===e||a===g||a===h||a===k||a===w||"object"===typeof a&&null!==a&&(a.$$typeof===n||a.$$typeof===p||a.$$typeof===q||a.$$typeof===l||a.$$typeof===m||a.$$typeof===y||a.$$typeof===z||a.$$typeof===A||a.$$typeof===x)};b.typeOf=d}); diff --git a/node_modules/react-router-dom/BrowserRouter.js b/node_modules/react-router-dom/BrowserRouter.js new file mode 100644 index 0000000..841485c --- /dev/null +++ b/node_modules/react-router-dom/BrowserRouter.js @@ -0,0 +1,3 @@ +"use strict"; +require("./warnAboutDeprecatedCJSRequire")("BrowserRouter"); +module.exports = require("./index.js").BrowserRouter; diff --git a/node_modules/react-router-dom/HashRouter.js b/node_modules/react-router-dom/HashRouter.js new file mode 100644 index 0000000..41a1907 --- /dev/null +++ b/node_modules/react-router-dom/HashRouter.js @@ -0,0 +1,3 @@ +"use strict"; +require("./warnAboutDeprecatedCJSRequire")("HashRouter"); +module.exports = require("./index.js").HashRouter; diff --git a/node_modules/react-router-dom/LICENSE b/node_modules/react-router-dom/LICENSE new file mode 100644 index 0000000..dc15fe3 --- /dev/null +++ b/node_modules/react-router-dom/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) React Training 2016-2018 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/react-router-dom/Link.js b/node_modules/react-router-dom/Link.js new file mode 100644 index 0000000..67cd635 --- /dev/null +++ b/node_modules/react-router-dom/Link.js @@ -0,0 +1,3 @@ +"use strict"; +require("./warnAboutDeprecatedCJSRequire")("Link"); +module.exports = require("./index.js").Link; diff --git a/node_modules/react-router-dom/MemoryRouter.js b/node_modules/react-router-dom/MemoryRouter.js new file mode 100644 index 0000000..79b74bb --- /dev/null +++ b/node_modules/react-router-dom/MemoryRouter.js @@ -0,0 +1,3 @@ +"use strict"; +require("./warnAboutDeprecatedCJSRequire")("MemoryRouter"); +module.exports = require("./index.js").MemoryRouter; diff --git a/node_modules/react-router-dom/NavLink.js b/node_modules/react-router-dom/NavLink.js new file mode 100644 index 0000000..eeae447 --- /dev/null +++ b/node_modules/react-router-dom/NavLink.js @@ -0,0 +1,3 @@ +"use strict"; +require("./warnAboutDeprecatedCJSRequire")("NavLink"); +module.exports = require("./index.js").NavLink; diff --git a/node_modules/react-router-dom/Prompt.js b/node_modules/react-router-dom/Prompt.js new file mode 100644 index 0000000..20f629b --- /dev/null +++ b/node_modules/react-router-dom/Prompt.js @@ -0,0 +1,3 @@ +"use strict"; +require("./warnAboutDeprecatedCJSRequire")("Prompt"); +module.exports = require("./index.js").Prompt; diff --git a/node_modules/react-router-dom/README.md b/node_modules/react-router-dom/README.md new file mode 100644 index 0000000..f2abe64 --- /dev/null +++ b/node_modules/react-router-dom/README.md @@ -0,0 +1,37 @@ +# react-router-dom + +DOM bindings for [React Router](https://reacttraining.com/react-router). + +## Installation + +Using [npm](https://www.npmjs.com/): + + $ npm install --save react-router-dom + +Then with a module bundler like [webpack](https://webpack.github.io/), use as you would anything else: + +```js +// using ES6 modules +import { BrowserRouter, Route, Link } from "react-router-dom"; + +// using CommonJS modules +const BrowserRouter = require("react-router-dom").BrowserRouter; +const Route = require("react-router-dom").Route; +const Link = require("react-router-dom").Link; +``` + +The UMD build is also available on [unpkg](https://unpkg.com): + +```html + +``` + +You can find the library on `window.ReactRouterDOM`. + +## Issues + +If you find a bug, please file an issue on [our issue tracker on GitHub](https://github.com/ReactTraining/react-router/issues). + +## Credits + +React Router is built and maintained by [React Training](https://reacttraining.com). diff --git a/node_modules/react-router-dom/Redirect.js b/node_modules/react-router-dom/Redirect.js new file mode 100644 index 0000000..6c763ab --- /dev/null +++ b/node_modules/react-router-dom/Redirect.js @@ -0,0 +1,3 @@ +"use strict"; +require("./warnAboutDeprecatedCJSRequire")("Redirect"); +module.exports = require("./index.js").Redirect; diff --git a/node_modules/react-router-dom/Route.js b/node_modules/react-router-dom/Route.js new file mode 100644 index 0000000..0d3b1f5 --- /dev/null +++ b/node_modules/react-router-dom/Route.js @@ -0,0 +1,3 @@ +"use strict"; +require("./warnAboutDeprecatedCJSRequire")("Route"); +module.exports = require("./index.js").Route; diff --git a/node_modules/react-router-dom/Router.js b/node_modules/react-router-dom/Router.js new file mode 100644 index 0000000..ca27b72 --- /dev/null +++ b/node_modules/react-router-dom/Router.js @@ -0,0 +1,3 @@ +"use strict"; +require("./warnAboutDeprecatedCJSRequire")("Router"); +module.exports = require("./index.js").Router; diff --git a/node_modules/react-router-dom/StaticRouter.js b/node_modules/react-router-dom/StaticRouter.js new file mode 100644 index 0000000..6bc3513 --- /dev/null +++ b/node_modules/react-router-dom/StaticRouter.js @@ -0,0 +1,3 @@ +"use strict"; +require("./warnAboutDeprecatedCJSRequire")("StaticRouter"); +module.exports = require("./index.js").StaticRouter; diff --git a/node_modules/react-router-dom/Switch.js b/node_modules/react-router-dom/Switch.js new file mode 100644 index 0000000..a4b38eb --- /dev/null +++ b/node_modules/react-router-dom/Switch.js @@ -0,0 +1,3 @@ +"use strict"; +require("./warnAboutDeprecatedCJSRequire")("Switch"); +module.exports = require("./index.js").Switch; diff --git a/node_modules/react-router-dom/cjs/react-router-dom.js b/node_modules/react-router-dom/cjs/react-router-dom.js new file mode 100644 index 0000000..d466cd5 --- /dev/null +++ b/node_modules/react-router-dom/cjs/react-router-dom.js @@ -0,0 +1,443 @@ +'use strict'; + +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var reactRouter = require('react-router'); +var React = _interopDefault(require('react')); +var history = require('history'); +var PropTypes = _interopDefault(require('prop-types')); +var warning = _interopDefault(require('tiny-warning')); +var invariant = _interopDefault(require('tiny-invariant')); + +function _extends() { + _extends = Object.assign || function (target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + + return target; + }; + + return _extends.apply(this, arguments); +} + +function _inheritsLoose(subClass, superClass) { + subClass.prototype = Object.create(superClass.prototype); + subClass.prototype.constructor = subClass; + subClass.__proto__ = superClass; +} + +function _objectWithoutPropertiesLoose(source, excluded) { + if (source == null) return {}; + var target = {}; + var sourceKeys = Object.keys(source); + var key, i; + + for (i = 0; i < sourceKeys.length; i++) { + key = sourceKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + target[key] = source[key]; + } + + return target; +} + +/** + * The public API for a that uses HTML5 history. + */ + +var BrowserRouter = +/*#__PURE__*/ +function (_React$Component) { + _inheritsLoose(BrowserRouter, _React$Component); + + function BrowserRouter() { + var _this; + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this; + _this.history = history.createBrowserHistory(_this.props); + return _this; + } + + var _proto = BrowserRouter.prototype; + + _proto.render = function render() { + return React.createElement(reactRouter.Router, { + history: this.history, + children: this.props.children + }); + }; + + return BrowserRouter; +}(React.Component); + +{ + BrowserRouter.propTypes = { + basename: PropTypes.string, + children: PropTypes.node, + forceRefresh: PropTypes.bool, + getUserConfirmation: PropTypes.func, + keyLength: PropTypes.number + }; + + BrowserRouter.prototype.componentDidMount = function () { + warning(!this.props.history, " ignores the history prop. To use a custom history, " + "use `import { Router }` instead of `import { BrowserRouter as Router }`.") ; + }; +} + +/** + * The public API for a that uses window.location.hash. + */ + +var HashRouter = +/*#__PURE__*/ +function (_React$Component) { + _inheritsLoose(HashRouter, _React$Component); + + function HashRouter() { + var _this; + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this; + _this.history = history.createHashHistory(_this.props); + return _this; + } + + var _proto = HashRouter.prototype; + + _proto.render = function render() { + return React.createElement(reactRouter.Router, { + history: this.history, + children: this.props.children + }); + }; + + return HashRouter; +}(React.Component); + +{ + HashRouter.propTypes = { + basename: PropTypes.string, + children: PropTypes.node, + getUserConfirmation: PropTypes.func, + hashType: PropTypes.oneOf(["hashbang", "noslash", "slash"]) + }; + + HashRouter.prototype.componentDidMount = function () { + warning(!this.props.history, " ignores the history prop. To use a custom history, " + "use `import { Router }` instead of `import { HashRouter as Router }`.") ; + }; +} + +var resolveToLocation = function resolveToLocation(to, currentLocation) { + return typeof to === "function" ? to(currentLocation) : to; +}; +var normalizeToLocation = function normalizeToLocation(to, currentLocation) { + return typeof to === "string" ? history.createLocation(to, null, null, currentLocation) : to; +}; + +var forwardRefShim = function forwardRefShim(C) { + return C; +}; + +var forwardRef = React.forwardRef; + +if (typeof forwardRef === "undefined") { + forwardRef = forwardRefShim; +} + +function isModifiedEvent(event) { + return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey); +} + +var LinkAnchor = forwardRef(function (_ref, forwardedRef) { + var innerRef = _ref.innerRef, + navigate = _ref.navigate, + _onClick = _ref.onClick, + rest = _objectWithoutPropertiesLoose(_ref, ["innerRef", "navigate", "onClick"]); + + var target = rest.target; + + var props = _extends({}, rest, { + onClick: function onClick(event) { + try { + if (_onClick) _onClick(event); + } catch (ex) { + event.preventDefault(); + throw ex; + } + + if (!event.defaultPrevented && // onClick prevented default + event.button === 0 && ( // ignore everything but left clicks + !target || target === "_self") && // let browser handle "target=_blank" etc. + !isModifiedEvent(event) // ignore clicks with modifier keys + ) { + event.preventDefault(); + navigate(); + } + } + }); // React 15 compat + + + if (forwardRefShim !== forwardRef) { + props.ref = forwardedRef || innerRef; + } else { + props.ref = innerRef; + } + /* eslint-disable-next-line jsx-a11y/anchor-has-content */ + + + return React.createElement("a", props); +}); + +{ + LinkAnchor.displayName = "LinkAnchor"; +} +/** + * The public API for rendering a history-aware . + */ + + +var Link = forwardRef(function (_ref2, forwardedRef) { + var _ref2$component = _ref2.component, + component = _ref2$component === void 0 ? LinkAnchor : _ref2$component, + replace = _ref2.replace, + to = _ref2.to, + innerRef = _ref2.innerRef, + rest = _objectWithoutPropertiesLoose(_ref2, ["component", "replace", "to", "innerRef"]); + + return React.createElement(reactRouter.__RouterContext.Consumer, null, function (context) { + !context ? invariant(false, "You should not use outside a ") : void 0; + var history = context.history; + var location = normalizeToLocation(resolveToLocation(to, context.location), context.location); + var href = location ? history.createHref(location) : ""; + + var props = _extends({}, rest, { + href: href, + navigate: function navigate() { + var location = resolveToLocation(to, context.location); + var method = replace ? history.replace : history.push; + method(location); + } + }); // React 15 compat + + + if (forwardRefShim !== forwardRef) { + props.ref = forwardedRef || innerRef; + } else { + props.innerRef = innerRef; + } + + return React.createElement(component, props); + }); +}); + +{ + var toType = PropTypes.oneOfType([PropTypes.string, PropTypes.object, PropTypes.func]); + var refType = PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.shape({ + current: PropTypes.any + })]); + Link.displayName = "Link"; + Link.propTypes = { + innerRef: refType, + onClick: PropTypes.func, + replace: PropTypes.bool, + target: PropTypes.string, + to: toType.isRequired + }; +} + +var forwardRefShim$1 = function forwardRefShim(C) { + return C; +}; + +var forwardRef$1 = React.forwardRef; + +if (typeof forwardRef$1 === "undefined") { + forwardRef$1 = forwardRefShim$1; +} + +function joinClassnames() { + for (var _len = arguments.length, classnames = new Array(_len), _key = 0; _key < _len; _key++) { + classnames[_key] = arguments[_key]; + } + + return classnames.filter(function (i) { + return i; + }).join(" "); +} +/** + * A wrapper that knows if it's "active" or not. + */ + + +var NavLink = forwardRef$1(function (_ref, forwardedRef) { + var _ref$ariaCurrent = _ref["aria-current"], + ariaCurrent = _ref$ariaCurrent === void 0 ? "page" : _ref$ariaCurrent, + _ref$activeClassName = _ref.activeClassName, + activeClassName = _ref$activeClassName === void 0 ? "active" : _ref$activeClassName, + activeStyle = _ref.activeStyle, + classNameProp = _ref.className, + exact = _ref.exact, + isActiveProp = _ref.isActive, + locationProp = _ref.location, + sensitive = _ref.sensitive, + strict = _ref.strict, + styleProp = _ref.style, + to = _ref.to, + innerRef = _ref.innerRef, + rest = _objectWithoutPropertiesLoose(_ref, ["aria-current", "activeClassName", "activeStyle", "className", "exact", "isActive", "location", "sensitive", "strict", "style", "to", "innerRef"]); + + return React.createElement(reactRouter.__RouterContext.Consumer, null, function (context) { + !context ? invariant(false, "You should not use outside a ") : void 0; + var currentLocation = locationProp || context.location; + var toLocation = normalizeToLocation(resolveToLocation(to, currentLocation), currentLocation); + var path = toLocation.pathname; // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202 + + var escapedPath = path && path.replace(/([.+*?=^!:${}()[\]|/\\])/g, "\\$1"); + var match = escapedPath ? reactRouter.matchPath(currentLocation.pathname, { + path: escapedPath, + exact: exact, + sensitive: sensitive, + strict: strict + }) : null; + var isActive = !!(isActiveProp ? isActiveProp(match, currentLocation) : match); + var className = isActive ? joinClassnames(classNameProp, activeClassName) : classNameProp; + var style = isActive ? _extends({}, styleProp, {}, activeStyle) : styleProp; + + var props = _extends({ + "aria-current": isActive && ariaCurrent || null, + className: className, + style: style, + to: toLocation + }, rest); // React 15 compat + + + if (forwardRefShim$1 !== forwardRef$1) { + props.ref = forwardedRef || innerRef; + } else { + props.innerRef = innerRef; + } + + return React.createElement(Link, props); + }); +}); + +{ + NavLink.displayName = "NavLink"; + var ariaCurrentType = PropTypes.oneOf(["page", "step", "location", "date", "time", "true"]); + NavLink.propTypes = _extends({}, Link.propTypes, { + "aria-current": ariaCurrentType, + activeClassName: PropTypes.string, + activeStyle: PropTypes.object, + className: PropTypes.string, + exact: PropTypes.bool, + isActive: PropTypes.func, + location: PropTypes.object, + sensitive: PropTypes.bool, + strict: PropTypes.bool, + style: PropTypes.object + }); +} + +Object.defineProperty(exports, 'MemoryRouter', { + enumerable: true, + get: function () { + return reactRouter.MemoryRouter; + } +}); +Object.defineProperty(exports, 'Prompt', { + enumerable: true, + get: function () { + return reactRouter.Prompt; + } +}); +Object.defineProperty(exports, 'Redirect', { + enumerable: true, + get: function () { + return reactRouter.Redirect; + } +}); +Object.defineProperty(exports, 'Route', { + enumerable: true, + get: function () { + return reactRouter.Route; + } +}); +Object.defineProperty(exports, 'Router', { + enumerable: true, + get: function () { + return reactRouter.Router; + } +}); +Object.defineProperty(exports, 'StaticRouter', { + enumerable: true, + get: function () { + return reactRouter.StaticRouter; + } +}); +Object.defineProperty(exports, 'Switch', { + enumerable: true, + get: function () { + return reactRouter.Switch; + } +}); +Object.defineProperty(exports, 'generatePath', { + enumerable: true, + get: function () { + return reactRouter.generatePath; + } +}); +Object.defineProperty(exports, 'matchPath', { + enumerable: true, + get: function () { + return reactRouter.matchPath; + } +}); +Object.defineProperty(exports, 'useHistory', { + enumerable: true, + get: function () { + return reactRouter.useHistory; + } +}); +Object.defineProperty(exports, 'useLocation', { + enumerable: true, + get: function () { + return reactRouter.useLocation; + } +}); +Object.defineProperty(exports, 'useParams', { + enumerable: true, + get: function () { + return reactRouter.useParams; + } +}); +Object.defineProperty(exports, 'useRouteMatch', { + enumerable: true, + get: function () { + return reactRouter.useRouteMatch; + } +}); +Object.defineProperty(exports, 'withRouter', { + enumerable: true, + get: function () { + return reactRouter.withRouter; + } +}); +exports.BrowserRouter = BrowserRouter; +exports.HashRouter = HashRouter; +exports.Link = Link; +exports.NavLink = NavLink; +//# sourceMappingURL=react-router-dom.js.map diff --git a/node_modules/react-router-dom/cjs/react-router-dom.js.map b/node_modules/react-router-dom/cjs/react-router-dom.js.map new file mode 100644 index 0000000..9681f40 --- /dev/null +++ b/node_modules/react-router-dom/cjs/react-router-dom.js.map @@ -0,0 +1 @@ +{"version":3,"file":"react-router-dom.js","sources":["../modules/BrowserRouter.js","../modules/HashRouter.js","../modules/utils/locationUtils.js","../modules/Link.js","../modules/NavLink.js"],"sourcesContent":["import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n );\n };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n return ;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const method = replace ? history.replace : history.push;\n\n method(location);\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link.js\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\",\n activeStyle,\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n sensitive,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n sensitive,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n const className = isActive\n ? joinClassnames(classNameProp, activeClassName)\n : classNameProp;\n const style = isActive ? { ...styleProp, ...activeStyle } : styleProp;\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return ;\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.string,\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.object\n };\n}\n\nexport default NavLink;\n"],"names":["BrowserRouter","history","createHistory","props","render","Router","children","React","Component","propTypes","basename","PropTypes","string","node","forceRefresh","bool","getUserConfirmation","func","keyLength","number","prototype","componentDidMount","warning","HashRouter","hashType","oneOf","resolveToLocation","to","currentLocation","normalizeToLocation","createLocation","forwardRefShim","C","forwardRef","isModifiedEvent","event","metaKey","altKey","ctrlKey","shiftKey","LinkAnchor","forwardedRef","innerRef","navigate","onClick","rest","target","ex","preventDefault","defaultPrevented","button","ref","displayName","Link","component","replace","RouterContext","context","invariant","location","href","createHref","method","push","createElement","toType","oneOfType","object","refType","shape","current","any","isRequired","joinClassnames","classnames","filter","i","join","NavLink","ariaCurrent","activeClassName","activeStyle","classNameProp","className","exact","isActiveProp","isActive","locationProp","sensitive","strict","styleProp","style","toLocation","path","pathname","escapedPath","match","matchPath","ariaCurrentType"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/react-router-dom/cjs/react-router-dom.min.js b/node_modules/react-router-dom/cjs/react-router-dom.min.js new file mode 100644 index 0000000..17ec8ca --- /dev/null +++ b/node_modules/react-router-dom/cjs/react-router-dom.min.js @@ -0,0 +1,2 @@ +"use strict";function _interopDefault(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var reactRouter=require("react-router"),React=_interopDefault(require("react")),history=require("history");require("prop-types"),require("tiny-warning");var invariant=_interopDefault(require("tiny-invariant"));function _extends(){return(_extends=Object.assign||function(e){for(var t=1;t that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n );\n };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n return ;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const method = replace ? history.replace : history.push;\n\n method(location);\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link.js\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\",\n activeStyle,\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n sensitive,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n sensitive,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n const className = isActive\n ? joinClassnames(classNameProp, activeClassName)\n : classNameProp;\n const style = isActive ? { ...styleProp, ...activeStyle } : styleProp;\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return ;\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.string,\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.object\n };\n}\n\nexport default NavLink;\n"],"names":["BrowserRouter","history","createHistory","_this","props","render","React","Router","this","children","Component","HashRouter","resolveToLocation","to","currentLocation","normalizeToLocation","createLocation","forwardRefShim","C","forwardRef","isModifiedEvent","event","metaKey","altKey","ctrlKey","shiftKey","LinkAnchor","forwardedRef","innerRef","navigate","onClick","rest","target","ex","preventDefault","defaultPrevented","button","ref","Link","component","replace","RouterContext","Consumer","context","invariant","location","href","createHref","push","createElement","joinClassnames","classnames","filter","i","join","NavLink","ariaCurrent","activeClassName","activeStyle","classNameProp","className","exact","isActiveProp","isActive","locationProp","sensitive","strict","styleProp","style","toLocation","path","pathname","escapedPath","match","matchPath"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/react-router-dom/es/BrowserRouter.js b/node_modules/react-router-dom/es/BrowserRouter.js new file mode 100644 index 0000000..b6093cf --- /dev/null +++ b/node_modules/react-router-dom/es/BrowserRouter.js @@ -0,0 +1,5 @@ +import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js"; +warnAboutDeprecatedESMImport("BrowserRouter"); + +import { BrowserRouter } from "../esm/react-router-dom.js"; +export default BrowserRouter; diff --git a/node_modules/react-router-dom/es/HashRouter.js b/node_modules/react-router-dom/es/HashRouter.js new file mode 100644 index 0000000..e6ef546 --- /dev/null +++ b/node_modules/react-router-dom/es/HashRouter.js @@ -0,0 +1,5 @@ +import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js"; +warnAboutDeprecatedESMImport("HashRouter"); + +import { HashRouter } from "../esm/react-router-dom.js"; +export default HashRouter; diff --git a/node_modules/react-router-dom/es/Link.js b/node_modules/react-router-dom/es/Link.js new file mode 100644 index 0000000..33d3cb4 --- /dev/null +++ b/node_modules/react-router-dom/es/Link.js @@ -0,0 +1,5 @@ +import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js"; +warnAboutDeprecatedESMImport("Link"); + +import { Link } from "../esm/react-router-dom.js"; +export default Link; diff --git a/node_modules/react-router-dom/es/MemoryRouter.js b/node_modules/react-router-dom/es/MemoryRouter.js new file mode 100644 index 0000000..4f1e1fd --- /dev/null +++ b/node_modules/react-router-dom/es/MemoryRouter.js @@ -0,0 +1,5 @@ +import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js"; +warnAboutDeprecatedESMImport("MemoryRouter"); + +import { MemoryRouter } from "../esm/react-router-dom.js"; +export default MemoryRouter; diff --git a/node_modules/react-router-dom/es/NavLink.js b/node_modules/react-router-dom/es/NavLink.js new file mode 100644 index 0000000..b73967f --- /dev/null +++ b/node_modules/react-router-dom/es/NavLink.js @@ -0,0 +1,5 @@ +import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js"; +warnAboutDeprecatedESMImport("NavLink"); + +import { NavLink } from "../esm/react-router-dom.js"; +export default NavLink; diff --git a/node_modules/react-router-dom/es/Prompt.js b/node_modules/react-router-dom/es/Prompt.js new file mode 100644 index 0000000..fa5bc49 --- /dev/null +++ b/node_modules/react-router-dom/es/Prompt.js @@ -0,0 +1,5 @@ +import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js"; +warnAboutDeprecatedESMImport("Prompt"); + +import { Prompt } from "../esm/react-router-dom.js"; +export default Prompt; diff --git a/node_modules/react-router-dom/es/Redirect.js b/node_modules/react-router-dom/es/Redirect.js new file mode 100644 index 0000000..c472bf8 --- /dev/null +++ b/node_modules/react-router-dom/es/Redirect.js @@ -0,0 +1,5 @@ +import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js"; +warnAboutDeprecatedESMImport("Redirect"); + +import { Redirect } from "../esm/react-router-dom.js"; +export default Redirect; diff --git a/node_modules/react-router-dom/es/Route.js b/node_modules/react-router-dom/es/Route.js new file mode 100644 index 0000000..3cc3589 --- /dev/null +++ b/node_modules/react-router-dom/es/Route.js @@ -0,0 +1,5 @@ +import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js"; +warnAboutDeprecatedESMImport("Route"); + +import { Route } from "../esm/react-router-dom.js"; +export default Route; diff --git a/node_modules/react-router-dom/es/Router.js b/node_modules/react-router-dom/es/Router.js new file mode 100644 index 0000000..9ca9e1c --- /dev/null +++ b/node_modules/react-router-dom/es/Router.js @@ -0,0 +1,5 @@ +import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js"; +warnAboutDeprecatedESMImport("Router"); + +import { Router } from "../esm/react-router-dom.js"; +export default Router; diff --git a/node_modules/react-router-dom/es/StaticRouter.js b/node_modules/react-router-dom/es/StaticRouter.js new file mode 100644 index 0000000..93bb86e --- /dev/null +++ b/node_modules/react-router-dom/es/StaticRouter.js @@ -0,0 +1,5 @@ +import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js"; +warnAboutDeprecatedESMImport("StaticRouter"); + +import { StaticRouter } from "../esm/react-router-dom.js"; +export default StaticRouter; diff --git a/node_modules/react-router-dom/es/Switch.js b/node_modules/react-router-dom/es/Switch.js new file mode 100644 index 0000000..04a5c03 --- /dev/null +++ b/node_modules/react-router-dom/es/Switch.js @@ -0,0 +1,5 @@ +import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js"; +warnAboutDeprecatedESMImport("Switch"); + +import { Switch } from "../esm/react-router-dom.js"; +export default Switch; diff --git a/node_modules/react-router-dom/es/generatePath.js b/node_modules/react-router-dom/es/generatePath.js new file mode 100644 index 0000000..669e227 --- /dev/null +++ b/node_modules/react-router-dom/es/generatePath.js @@ -0,0 +1,5 @@ +import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js"; +warnAboutDeprecatedESMImport("generatePath"); + +import { generatePath } from "../esm/react-router-dom.js"; +export default generatePath; diff --git a/node_modules/react-router-dom/es/matchPath.js b/node_modules/react-router-dom/es/matchPath.js new file mode 100644 index 0000000..b0469d5 --- /dev/null +++ b/node_modules/react-router-dom/es/matchPath.js @@ -0,0 +1,5 @@ +import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js"; +warnAboutDeprecatedESMImport("matchPath"); + +import { matchPath } from "../esm/react-router-dom.js"; +export default matchPath; diff --git a/node_modules/react-router-dom/es/warnAboutDeprecatedESMImport.js b/node_modules/react-router-dom/es/warnAboutDeprecatedESMImport.js new file mode 100644 index 0000000..3a330e4 --- /dev/null +++ b/node_modules/react-router-dom/es/warnAboutDeprecatedESMImport.js @@ -0,0 +1,34 @@ +/* eslint-disable prefer-arrow-callback, no-empty */ +var printWarning = function() {}; + +if (process.env.NODE_ENV !== "production") { + printWarning = function(format, subs) { + var index = 0; + var message = + "Warning: " + + (subs.length > 0 + ? format.replace(/%s/g, function() { + return subs[index++]; + }) + : format); + + if (typeof console !== "undefined") { + console.error(message); + } + + try { + // --- Welcome to debugging React Router --- + // This error was thrown as a convenience so that you can use the + // stack trace to find the callsite that triggered this warning. + throw new Error(message); + } catch (e) {} + }; +} + +export default function(member) { + printWarning( + 'Please use `import { %s } from "react-router-dom"` instead of `import %s from "react-router-dom/es/%s"`. ' + + "Support for the latter will be removed in the next major release.", + [member, member] + ); +} diff --git a/node_modules/react-router-dom/es/withRouter.js b/node_modules/react-router-dom/es/withRouter.js new file mode 100644 index 0000000..3414fc9 --- /dev/null +++ b/node_modules/react-router-dom/es/withRouter.js @@ -0,0 +1,5 @@ +import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js"; +warnAboutDeprecatedESMImport("withRouter"); + +import { withRouter } from "../esm/react-router-dom.js"; +export default withRouter; diff --git a/node_modules/react-router-dom/esm/react-router-dom.js b/node_modules/react-router-dom/esm/react-router-dom.js new file mode 100644 index 0000000..b153684 --- /dev/null +++ b/node_modules/react-router-dom/esm/react-router-dom.js @@ -0,0 +1,317 @@ +import { Router, __RouterContext, matchPath } from 'react-router'; +export { MemoryRouter, Prompt, Redirect, Route, Router, StaticRouter, Switch, generatePath, matchPath, useHistory, useLocation, useParams, useRouteMatch, withRouter } from 'react-router'; +import _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose'; +import React from 'react'; +import { createBrowserHistory, createHashHistory, createLocation } from 'history'; +import PropTypes from 'prop-types'; +import warning from 'tiny-warning'; +import _extends from '@babel/runtime/helpers/esm/extends'; +import _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose'; +import invariant from 'tiny-invariant'; + +/** + * The public API for a that uses HTML5 history. + */ + +var BrowserRouter = +/*#__PURE__*/ +function (_React$Component) { + _inheritsLoose(BrowserRouter, _React$Component); + + function BrowserRouter() { + var _this; + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this; + _this.history = createBrowserHistory(_this.props); + return _this; + } + + var _proto = BrowserRouter.prototype; + + _proto.render = function render() { + return React.createElement(Router, { + history: this.history, + children: this.props.children + }); + }; + + return BrowserRouter; +}(React.Component); + +if (process.env.NODE_ENV !== "production") { + BrowserRouter.propTypes = { + basename: PropTypes.string, + children: PropTypes.node, + forceRefresh: PropTypes.bool, + getUserConfirmation: PropTypes.func, + keyLength: PropTypes.number + }; + + BrowserRouter.prototype.componentDidMount = function () { + process.env.NODE_ENV !== "production" ? warning(!this.props.history, " ignores the history prop. To use a custom history, " + "use `import { Router }` instead of `import { BrowserRouter as Router }`.") : void 0; + }; +} + +/** + * The public API for a that uses window.location.hash. + */ + +var HashRouter = +/*#__PURE__*/ +function (_React$Component) { + _inheritsLoose(HashRouter, _React$Component); + + function HashRouter() { + var _this; + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this; + _this.history = createHashHistory(_this.props); + return _this; + } + + var _proto = HashRouter.prototype; + + _proto.render = function render() { + return React.createElement(Router, { + history: this.history, + children: this.props.children + }); + }; + + return HashRouter; +}(React.Component); + +if (process.env.NODE_ENV !== "production") { + HashRouter.propTypes = { + basename: PropTypes.string, + children: PropTypes.node, + getUserConfirmation: PropTypes.func, + hashType: PropTypes.oneOf(["hashbang", "noslash", "slash"]) + }; + + HashRouter.prototype.componentDidMount = function () { + process.env.NODE_ENV !== "production" ? warning(!this.props.history, " ignores the history prop. To use a custom history, " + "use `import { Router }` instead of `import { HashRouter as Router }`.") : void 0; + }; +} + +var resolveToLocation = function resolveToLocation(to, currentLocation) { + return typeof to === "function" ? to(currentLocation) : to; +}; +var normalizeToLocation = function normalizeToLocation(to, currentLocation) { + return typeof to === "string" ? createLocation(to, null, null, currentLocation) : to; +}; + +var forwardRefShim = function forwardRefShim(C) { + return C; +}; + +var forwardRef = React.forwardRef; + +if (typeof forwardRef === "undefined") { + forwardRef = forwardRefShim; +} + +function isModifiedEvent(event) { + return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey); +} + +var LinkAnchor = forwardRef(function (_ref, forwardedRef) { + var innerRef = _ref.innerRef, + navigate = _ref.navigate, + _onClick = _ref.onClick, + rest = _objectWithoutPropertiesLoose(_ref, ["innerRef", "navigate", "onClick"]); + + var target = rest.target; + + var props = _extends({}, rest, { + onClick: function onClick(event) { + try { + if (_onClick) _onClick(event); + } catch (ex) { + event.preventDefault(); + throw ex; + } + + if (!event.defaultPrevented && // onClick prevented default + event.button === 0 && ( // ignore everything but left clicks + !target || target === "_self") && // let browser handle "target=_blank" etc. + !isModifiedEvent(event) // ignore clicks with modifier keys + ) { + event.preventDefault(); + navigate(); + } + } + }); // React 15 compat + + + if (forwardRefShim !== forwardRef) { + props.ref = forwardedRef || innerRef; + } else { + props.ref = innerRef; + } + /* eslint-disable-next-line jsx-a11y/anchor-has-content */ + + + return React.createElement("a", props); +}); + +if (process.env.NODE_ENV !== "production") { + LinkAnchor.displayName = "LinkAnchor"; +} +/** + * The public API for rendering a history-aware . + */ + + +var Link = forwardRef(function (_ref2, forwardedRef) { + var _ref2$component = _ref2.component, + component = _ref2$component === void 0 ? LinkAnchor : _ref2$component, + replace = _ref2.replace, + to = _ref2.to, + innerRef = _ref2.innerRef, + rest = _objectWithoutPropertiesLoose(_ref2, ["component", "replace", "to", "innerRef"]); + + return React.createElement(__RouterContext.Consumer, null, function (context) { + !context ? process.env.NODE_ENV !== "production" ? invariant(false, "You should not use outside a ") : invariant(false) : void 0; + var history = context.history; + var location = normalizeToLocation(resolveToLocation(to, context.location), context.location); + var href = location ? history.createHref(location) : ""; + + var props = _extends({}, rest, { + href: href, + navigate: function navigate() { + var location = resolveToLocation(to, context.location); + var method = replace ? history.replace : history.push; + method(location); + } + }); // React 15 compat + + + if (forwardRefShim !== forwardRef) { + props.ref = forwardedRef || innerRef; + } else { + props.innerRef = innerRef; + } + + return React.createElement(component, props); + }); +}); + +if (process.env.NODE_ENV !== "production") { + var toType = PropTypes.oneOfType([PropTypes.string, PropTypes.object, PropTypes.func]); + var refType = PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.shape({ + current: PropTypes.any + })]); + Link.displayName = "Link"; + Link.propTypes = { + innerRef: refType, + onClick: PropTypes.func, + replace: PropTypes.bool, + target: PropTypes.string, + to: toType.isRequired + }; +} + +var forwardRefShim$1 = function forwardRefShim(C) { + return C; +}; + +var forwardRef$1 = React.forwardRef; + +if (typeof forwardRef$1 === "undefined") { + forwardRef$1 = forwardRefShim$1; +} + +function joinClassnames() { + for (var _len = arguments.length, classnames = new Array(_len), _key = 0; _key < _len; _key++) { + classnames[_key] = arguments[_key]; + } + + return classnames.filter(function (i) { + return i; + }).join(" "); +} +/** + * A wrapper that knows if it's "active" or not. + */ + + +var NavLink = forwardRef$1(function (_ref, forwardedRef) { + var _ref$ariaCurrent = _ref["aria-current"], + ariaCurrent = _ref$ariaCurrent === void 0 ? "page" : _ref$ariaCurrent, + _ref$activeClassName = _ref.activeClassName, + activeClassName = _ref$activeClassName === void 0 ? "active" : _ref$activeClassName, + activeStyle = _ref.activeStyle, + classNameProp = _ref.className, + exact = _ref.exact, + isActiveProp = _ref.isActive, + locationProp = _ref.location, + sensitive = _ref.sensitive, + strict = _ref.strict, + styleProp = _ref.style, + to = _ref.to, + innerRef = _ref.innerRef, + rest = _objectWithoutPropertiesLoose(_ref, ["aria-current", "activeClassName", "activeStyle", "className", "exact", "isActive", "location", "sensitive", "strict", "style", "to", "innerRef"]); + + return React.createElement(__RouterContext.Consumer, null, function (context) { + !context ? process.env.NODE_ENV !== "production" ? invariant(false, "You should not use outside a ") : invariant(false) : void 0; + var currentLocation = locationProp || context.location; + var toLocation = normalizeToLocation(resolveToLocation(to, currentLocation), currentLocation); + var path = toLocation.pathname; // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202 + + var escapedPath = path && path.replace(/([.+*?=^!:${}()[\]|/\\])/g, "\\$1"); + var match = escapedPath ? matchPath(currentLocation.pathname, { + path: escapedPath, + exact: exact, + sensitive: sensitive, + strict: strict + }) : null; + var isActive = !!(isActiveProp ? isActiveProp(match, currentLocation) : match); + var className = isActive ? joinClassnames(classNameProp, activeClassName) : classNameProp; + var style = isActive ? _extends({}, styleProp, {}, activeStyle) : styleProp; + + var props = _extends({ + "aria-current": isActive && ariaCurrent || null, + className: className, + style: style, + to: toLocation + }, rest); // React 15 compat + + + if (forwardRefShim$1 !== forwardRef$1) { + props.ref = forwardedRef || innerRef; + } else { + props.innerRef = innerRef; + } + + return React.createElement(Link, props); + }); +}); + +if (process.env.NODE_ENV !== "production") { + NavLink.displayName = "NavLink"; + var ariaCurrentType = PropTypes.oneOf(["page", "step", "location", "date", "time", "true"]); + NavLink.propTypes = _extends({}, Link.propTypes, { + "aria-current": ariaCurrentType, + activeClassName: PropTypes.string, + activeStyle: PropTypes.object, + className: PropTypes.string, + exact: PropTypes.bool, + isActive: PropTypes.func, + location: PropTypes.object, + sensitive: PropTypes.bool, + strict: PropTypes.bool, + style: PropTypes.object + }); +} + +export { BrowserRouter, HashRouter, Link, NavLink }; +//# sourceMappingURL=react-router-dom.js.map diff --git a/node_modules/react-router-dom/esm/react-router-dom.js.map b/node_modules/react-router-dom/esm/react-router-dom.js.map new file mode 100644 index 0000000..e7bc9d5 --- /dev/null +++ b/node_modules/react-router-dom/esm/react-router-dom.js.map @@ -0,0 +1 @@ +{"version":3,"file":"react-router-dom.js","sources":["../modules/BrowserRouter.js","../modules/HashRouter.js","../modules/utils/locationUtils.js","../modules/Link.js","../modules/NavLink.js"],"sourcesContent":["import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n );\n };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n return ;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const method = replace ? history.replace : history.push;\n\n method(location);\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link.js\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\",\n activeStyle,\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n sensitive,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n sensitive,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n const className = isActive\n ? joinClassnames(classNameProp, activeClassName)\n : classNameProp;\n const style = isActive ? { ...styleProp, ...activeStyle } : styleProp;\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return ;\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.string,\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.object\n };\n}\n\nexport default NavLink;\n"],"names":["BrowserRouter","history","createHistory","props","render","children","React","Component","propTypes","basename","PropTypes","string","node","forceRefresh","bool","getUserConfirmation","func","keyLength","number","prototype","componentDidMount","warning","HashRouter","hashType","oneOf","resolveToLocation","to","currentLocation","normalizeToLocation","createLocation","forwardRefShim","C","forwardRef","isModifiedEvent","event","metaKey","altKey","ctrlKey","shiftKey","LinkAnchor","forwardedRef","innerRef","navigate","onClick","rest","target","ex","preventDefault","defaultPrevented","button","ref","displayName","Link","component","replace","RouterContext","context","invariant","location","href","createHref","method","push","createElement","toType","oneOfType","object","refType","shape","current","any","isRequired","joinClassnames","classnames","filter","i","join","NavLink","ariaCurrent","activeClassName","activeStyle","classNameProp","className","exact","isActiveProp","isActive","locationProp","sensitive","strict","styleProp","style","toLocation","path","pathname","escapedPath","match","matchPath","ariaCurrentType"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/react-router-dom/generatePath.js b/node_modules/react-router-dom/generatePath.js new file mode 100644 index 0000000..d487dd2 --- /dev/null +++ b/node_modules/react-router-dom/generatePath.js @@ -0,0 +1,3 @@ +"use strict"; +require("./warnAboutDeprecatedCJSRequire")("generatePath"); +module.exports = require("./index.js").generatePath; diff --git a/node_modules/react-router-dom/index.js b/node_modules/react-router-dom/index.js new file mode 100644 index 0000000..92172e2 --- /dev/null +++ b/node_modules/react-router-dom/index.js @@ -0,0 +1,7 @@ +"use strict"; + +if (process.env.NODE_ENV === "production") { + module.exports = require("./cjs/react-router-dom.min.js"); +} else { + module.exports = require("./cjs/react-router-dom.js"); +} diff --git a/node_modules/react-router-dom/matchPath.js b/node_modules/react-router-dom/matchPath.js new file mode 100644 index 0000000..6d1fe33 --- /dev/null +++ b/node_modules/react-router-dom/matchPath.js @@ -0,0 +1,3 @@ +"use strict"; +require("./warnAboutDeprecatedCJSRequire")("matchPath"); +module.exports = require("./index.js").matchPath; diff --git a/node_modules/react-router-dom/modules/BrowserRouter.js b/node_modules/react-router-dom/modules/BrowserRouter.js new file mode 100644 index 0000000..9ae0e74 --- /dev/null +++ b/node_modules/react-router-dom/modules/BrowserRouter.js @@ -0,0 +1,36 @@ +import React from "react"; +import { Router } from "react-router"; +import { createBrowserHistory as createHistory } from "history"; +import PropTypes from "prop-types"; +import warning from "tiny-warning"; + +/** + * The public API for a that uses HTML5 history. + */ +class BrowserRouter extends React.Component { + history = createHistory(this.props); + + render() { + return ; + } +} + +if (__DEV__) { + BrowserRouter.propTypes = { + basename: PropTypes.string, + children: PropTypes.node, + forceRefresh: PropTypes.bool, + getUserConfirmation: PropTypes.func, + keyLength: PropTypes.number + }; + + BrowserRouter.prototype.componentDidMount = function() { + warning( + !this.props.history, + " ignores the history prop. To use a custom history, " + + "use `import { Router }` instead of `import { BrowserRouter as Router }`." + ); + }; +} + +export default BrowserRouter; diff --git a/node_modules/react-router-dom/modules/HashRouter.js b/node_modules/react-router-dom/modules/HashRouter.js new file mode 100644 index 0000000..8a5bd71 --- /dev/null +++ b/node_modules/react-router-dom/modules/HashRouter.js @@ -0,0 +1,35 @@ +import React from "react"; +import { Router } from "react-router"; +import { createHashHistory as createHistory } from "history"; +import PropTypes from "prop-types"; +import warning from "tiny-warning"; + +/** + * The public API for a that uses window.location.hash. + */ +class HashRouter extends React.Component { + history = createHistory(this.props); + + render() { + return ; + } +} + +if (__DEV__) { + HashRouter.propTypes = { + basename: PropTypes.string, + children: PropTypes.node, + getUserConfirmation: PropTypes.func, + hashType: PropTypes.oneOf(["hashbang", "noslash", "slash"]) + }; + + HashRouter.prototype.componentDidMount = function() { + warning( + !this.props.history, + " ignores the history prop. To use a custom history, " + + "use `import { Router }` instead of `import { HashRouter as Router }`." + ); + }; +} + +export default HashRouter; diff --git a/node_modules/react-router-dom/modules/Link.js b/node_modules/react-router-dom/modules/Link.js new file mode 100644 index 0000000..25e9de5 --- /dev/null +++ b/node_modules/react-router-dom/modules/Link.js @@ -0,0 +1,146 @@ +import React from "react"; +import { __RouterContext as RouterContext } from "react-router"; +import PropTypes from "prop-types"; +import invariant from "tiny-invariant"; +import { + resolveToLocation, + normalizeToLocation +} from "./utils/locationUtils.js"; + +// React 15 compat +const forwardRefShim = C => C; +let { forwardRef } = React; +if (typeof forwardRef === "undefined") { + forwardRef = forwardRefShim; +} + +function isModifiedEvent(event) { + return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey); +} + +const LinkAnchor = forwardRef( + ( + { + innerRef, // TODO: deprecate + navigate, + onClick, + ...rest + }, + forwardedRef + ) => { + const { target } = rest; + + let props = { + ...rest, + onClick: event => { + try { + if (onClick) onClick(event); + } catch (ex) { + event.preventDefault(); + throw ex; + } + + if ( + !event.defaultPrevented && // onClick prevented default + event.button === 0 && // ignore everything but left clicks + (!target || target === "_self") && // let browser handle "target=_blank" etc. + !isModifiedEvent(event) // ignore clicks with modifier keys + ) { + event.preventDefault(); + navigate(); + } + } + }; + + // React 15 compat + if (forwardRefShim !== forwardRef) { + props.ref = forwardedRef || innerRef; + } else { + props.ref = innerRef; + } + + /* eslint-disable-next-line jsx-a11y/anchor-has-content */ + return ; + } +); + +if (__DEV__) { + LinkAnchor.displayName = "LinkAnchor"; +} + +/** + * The public API for rendering a history-aware . + */ +const Link = forwardRef( + ( + { + component = LinkAnchor, + replace, + to, + innerRef, // TODO: deprecate + ...rest + }, + forwardedRef + ) => { + return ( + + {context => { + invariant(context, "You should not use outside a "); + + const { history } = context; + + const location = normalizeToLocation( + resolveToLocation(to, context.location), + context.location + ); + + const href = location ? history.createHref(location) : ""; + const props = { + ...rest, + href, + navigate() { + const location = resolveToLocation(to, context.location); + const method = replace ? history.replace : history.push; + + method(location); + } + }; + + // React 15 compat + if (forwardRefShim !== forwardRef) { + props.ref = forwardedRef || innerRef; + } else { + props.innerRef = innerRef; + } + + return React.createElement(component, props); + }} + + ); + } +); + +if (__DEV__) { + const toType = PropTypes.oneOfType([ + PropTypes.string, + PropTypes.object, + PropTypes.func + ]); + const refType = PropTypes.oneOfType([ + PropTypes.string, + PropTypes.func, + PropTypes.shape({ current: PropTypes.any }) + ]); + + Link.displayName = "Link"; + + Link.propTypes = { + innerRef: refType, + onClick: PropTypes.func, + replace: PropTypes.bool, + target: PropTypes.string, + to: toType.isRequired + }; +} + +export default Link; diff --git a/node_modules/react-router-dom/modules/NavLink.js b/node_modules/react-router-dom/modules/NavLink.js new file mode 100644 index 0000000..1c3274c --- /dev/null +++ b/node_modules/react-router-dom/modules/NavLink.js @@ -0,0 +1,125 @@ +import React from "react"; +import { __RouterContext as RouterContext, matchPath } from "react-router"; +import PropTypes from "prop-types"; +import invariant from "tiny-invariant"; +import Link from "./Link.js"; +import { + resolveToLocation, + normalizeToLocation +} from "./utils/locationUtils.js"; + +// React 15 compat +const forwardRefShim = C => C; +let { forwardRef } = React; +if (typeof forwardRef === "undefined") { + forwardRef = forwardRefShim; +} + +function joinClassnames(...classnames) { + return classnames.filter(i => i).join(" "); +} + +/** + * A wrapper that knows if it's "active" or not. + */ +const NavLink = forwardRef( + ( + { + "aria-current": ariaCurrent = "page", + activeClassName = "active", + activeStyle, + className: classNameProp, + exact, + isActive: isActiveProp, + location: locationProp, + sensitive, + strict, + style: styleProp, + to, + innerRef, // TODO: deprecate + ...rest + }, + forwardedRef + ) => { + return ( + + {context => { + invariant(context, "You should not use outside a "); + + const currentLocation = locationProp || context.location; + const toLocation = normalizeToLocation( + resolveToLocation(to, currentLocation), + currentLocation + ); + const { pathname: path } = toLocation; + // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202 + const escapedPath = + path && path.replace(/([.+*?=^!:${}()[\]|/\\])/g, "\\$1"); + + const match = escapedPath + ? matchPath(currentLocation.pathname, { + path: escapedPath, + exact, + sensitive, + strict + }) + : null; + const isActive = !!(isActiveProp + ? isActiveProp(match, currentLocation) + : match); + + const className = isActive + ? joinClassnames(classNameProp, activeClassName) + : classNameProp; + const style = isActive ? { ...styleProp, ...activeStyle } : styleProp; + + const props = { + "aria-current": (isActive && ariaCurrent) || null, + className, + style, + to: toLocation, + ...rest + }; + + // React 15 compat + if (forwardRefShim !== forwardRef) { + props.ref = forwardedRef || innerRef; + } else { + props.innerRef = innerRef; + } + + return ; + }} + + ); + } +); + +if (__DEV__) { + NavLink.displayName = "NavLink"; + + const ariaCurrentType = PropTypes.oneOf([ + "page", + "step", + "location", + "date", + "time", + "true" + ]); + + NavLink.propTypes = { + ...Link.propTypes, + "aria-current": ariaCurrentType, + activeClassName: PropTypes.string, + activeStyle: PropTypes.object, + className: PropTypes.string, + exact: PropTypes.bool, + isActive: PropTypes.func, + location: PropTypes.object, + sensitive: PropTypes.bool, + strict: PropTypes.bool, + style: PropTypes.object + }; +} + +export default NavLink; diff --git a/node_modules/react-router-dom/modules/index.js b/node_modules/react-router-dom/modules/index.js new file mode 100644 index 0000000..35c75a2 --- /dev/null +++ b/node_modules/react-router-dom/modules/index.js @@ -0,0 +1,21 @@ +export { + MemoryRouter, + Prompt, + Redirect, + Route, + Router, + StaticRouter, + Switch, + generatePath, + matchPath, + withRouter, + useHistory, + useLocation, + useParams, + useRouteMatch +} from "react-router"; + +export { default as BrowserRouter } from "./BrowserRouter.js"; +export { default as HashRouter } from "./HashRouter.js"; +export { default as Link } from "./Link.js"; +export { default as NavLink } from "./NavLink.js"; diff --git a/node_modules/react-router-dom/modules/utils/locationUtils.js b/node_modules/react-router-dom/modules/utils/locationUtils.js new file mode 100644 index 0000000..47c1ae1 --- /dev/null +++ b/node_modules/react-router-dom/modules/utils/locationUtils.js @@ -0,0 +1,10 @@ +import { createLocation } from "history"; + +export const resolveToLocation = (to, currentLocation) => + typeof to === "function" ? to(currentLocation) : to; + +export const normalizeToLocation = (to, currentLocation) => { + return typeof to === "string" + ? createLocation(to, null, null, currentLocation) + : to; +}; diff --git a/node_modules/react-router-dom/package.json b/node_modules/react-router-dom/package.json new file mode 100644 index 0000000..f493067 --- /dev/null +++ b/node_modules/react-router-dom/package.json @@ -0,0 +1,101 @@ +{ + "_from": "react-router-dom", + "_id": "react-router-dom@5.2.0", + "_inBundle": false, + "_integrity": "sha512-gxAmfylo2QUjcwxI63RhQ5G85Qqt4voZpUXSEqCwykV0baaOTQDR1f0PmY8AELqIyVc0NEZUj0Gov5lNGcXgsA==", + "_location": "/react-router-dom", + "_phantomChildren": {}, + "_requested": { + "type": "tag", + "registry": true, + "raw": "react-router-dom", + "name": "react-router-dom", + "escapedName": "react-router-dom", + "rawSpec": "", + "saveSpec": null, + "fetchSpec": "latest" + }, + "_requiredBy": [ + "#USER", + "/" + ], + "_resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.2.0.tgz", + "_shasum": "9e65a4d0c45e13289e66c7b17c7e175d0ea15662", + "_spec": "react-router-dom", + "_where": "G:\\_comp_\\odsc\\orig\\AllNotes", + "author": { + "name": "React Training", + "email": "hello@reacttraining.com" + }, + "browserify": { + "transform": [ + "loose-envify" + ] + }, + "bugs": { + "url": "https://github.com/ReactTraining/react-router/issues" + }, + "bundleDependencies": false, + "dependencies": { + "@babel/runtime": "^7.1.2", + "history": "^4.9.0", + "loose-envify": "^1.3.1", + "prop-types": "^15.6.2", + "react-router": "5.2.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + }, + "deprecated": false, + "description": "DOM bindings for React Router", + "files": [ + "BrowserRouter.js", + "HashRouter.js", + "Link.js", + "MemoryRouter.js", + "NavLink.js", + "Prompt.js", + "Redirect.js", + "Route.js", + "Router.js", + "StaticRouter.js", + "Switch.js", + "cjs", + "es", + "esm", + "index.js", + "generatePath.js", + "matchPath.js", + "modules/*.js", + "modules/utils/*.js", + "withRouter.js", + "warnAboutDeprecatedCJSRequire.js", + "umd" + ], + "gitHead": "21a62e55c0d6196002bd4ab5b3350514976928cf", + "homepage": "https://github.com/ReactTraining/react-router#readme", + "keywords": [ + "react", + "router", + "route", + "routing", + "history", + "link" + ], + "license": "MIT", + "main": "index.js", + "module": "esm/react-router-dom.js", + "name": "react-router-dom", + "peerDependencies": { + "react": ">=15" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ReactTraining/react-router.git" + }, + "scripts": { + "build": "rollup -c", + "lint": "eslint modules" + }, + "sideEffects": false, + "version": "5.2.0" +} diff --git a/node_modules/react-router-dom/umd/react-router-dom.js b/node_modules/react-router-dom/umd/react-router-dom.js new file mode 100644 index 0000000..5ad6347 --- /dev/null +++ b/node_modules/react-router-dom/umd/react-router-dom.js @@ -0,0 +1,3969 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react')) : + typeof define === 'function' && define.amd ? define(['exports', 'react'], factory) : + (global = global || self, factory(global.ReactRouterDOM = {}, global.React)); +}(this, function (exports, React) { 'use strict'; + + var React__default = 'default' in React ? React['default'] : React; + + function _inheritsLoose(subClass, superClass) { + subClass.prototype = Object.create(superClass.prototype); + subClass.prototype.constructor = subClass; + subClass.__proto__ = superClass; + } + + function unwrapExports (x) { + return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x; + } + + function createCommonjsModule(fn, module) { + return module = { exports: {} }, fn(module, module.exports), module.exports; + } + + var reactIs_production_min = createCommonjsModule(function (module, exports) { + Object.defineProperty(exports,"__esModule",{value:!0}); + var b="function"===typeof Symbol&&Symbol.for,c=b?Symbol.for("react.element"):60103,d=b?Symbol.for("react.portal"):60106,e=b?Symbol.for("react.fragment"):60107,f=b?Symbol.for("react.strict_mode"):60108,g=b?Symbol.for("react.profiler"):60114,h=b?Symbol.for("react.provider"):60109,k=b?Symbol.for("react.context"):60110,l=b?Symbol.for("react.async_mode"):60111,m=b?Symbol.for("react.concurrent_mode"):60111,n=b?Symbol.for("react.forward_ref"):60112,p=b?Symbol.for("react.suspense"):60113,q=b?Symbol.for("react.suspense_list"): + 60120,r=b?Symbol.for("react.memo"):60115,t=b?Symbol.for("react.lazy"):60116,v=b?Symbol.for("react.fundamental"):60117,w=b?Symbol.for("react.responder"):60118;function x(a){if("object"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case h:return a;default:return u}}case t:case r:case d:return u}}}function y(a){return x(a)===m}exports.typeOf=x;exports.AsyncMode=l; + exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p; + exports.isValidElementType=function(a){return "string"===typeof a||"function"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||"object"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===v||a.$$typeof===w)};exports.isAsyncMode=function(a){return y(a)||x(a)===l};exports.isConcurrentMode=y;exports.isContextConsumer=function(a){return x(a)===k};exports.isContextProvider=function(a){return x(a)===h}; + exports.isElement=function(a){return "object"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return x(a)===n};exports.isFragment=function(a){return x(a)===e};exports.isLazy=function(a){return x(a)===t};exports.isMemo=function(a){return x(a)===r};exports.isPortal=function(a){return x(a)===d};exports.isProfiler=function(a){return x(a)===g};exports.isStrictMode=function(a){return x(a)===f};exports.isSuspense=function(a){return x(a)===p}; + }); + + unwrapExports(reactIs_production_min); + var reactIs_production_min_1 = reactIs_production_min.typeOf; + var reactIs_production_min_2 = reactIs_production_min.AsyncMode; + var reactIs_production_min_3 = reactIs_production_min.ConcurrentMode; + var reactIs_production_min_4 = reactIs_production_min.ContextConsumer; + var reactIs_production_min_5 = reactIs_production_min.ContextProvider; + var reactIs_production_min_6 = reactIs_production_min.Element; + var reactIs_production_min_7 = reactIs_production_min.ForwardRef; + var reactIs_production_min_8 = reactIs_production_min.Fragment; + var reactIs_production_min_9 = reactIs_production_min.Lazy; + var reactIs_production_min_10 = reactIs_production_min.Memo; + var reactIs_production_min_11 = reactIs_production_min.Portal; + var reactIs_production_min_12 = reactIs_production_min.Profiler; + var reactIs_production_min_13 = reactIs_production_min.StrictMode; + var reactIs_production_min_14 = reactIs_production_min.Suspense; + var reactIs_production_min_15 = reactIs_production_min.isValidElementType; + var reactIs_production_min_16 = reactIs_production_min.isAsyncMode; + var reactIs_production_min_17 = reactIs_production_min.isConcurrentMode; + var reactIs_production_min_18 = reactIs_production_min.isContextConsumer; + var reactIs_production_min_19 = reactIs_production_min.isContextProvider; + var reactIs_production_min_20 = reactIs_production_min.isElement; + var reactIs_production_min_21 = reactIs_production_min.isForwardRef; + var reactIs_production_min_22 = reactIs_production_min.isFragment; + var reactIs_production_min_23 = reactIs_production_min.isLazy; + var reactIs_production_min_24 = reactIs_production_min.isMemo; + var reactIs_production_min_25 = reactIs_production_min.isPortal; + var reactIs_production_min_26 = reactIs_production_min.isProfiler; + var reactIs_production_min_27 = reactIs_production_min.isStrictMode; + var reactIs_production_min_28 = reactIs_production_min.isSuspense; + + var reactIs_development = createCommonjsModule(function (module, exports) { + + + + { + (function() { + + Object.defineProperty(exports, '__esModule', { value: true }); + + // The Symbol used to tag the ReactElement-like types. If there is no native Symbol + // nor polyfill, then a plain number is used for performance. + var hasSymbol = typeof Symbol === 'function' && Symbol.for; + + var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7; + var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca; + var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb; + var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc; + var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2; + var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd; + var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; + // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary + // (unstable) APIs that have been removed. Can we remove the symbols? + var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf; + var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf; + var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0; + var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1; + var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8; + var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3; + var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4; + var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5; + var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6; + + function isValidElementType(type) { + return typeof type === 'string' || typeof type === 'function' || + // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill. + type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE); + } + + /** + * Forked from fbjs/warning: + * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js + * + * Only change is we use console.warn instead of console.error, + * and do nothing when 'console' is not supported. + * This really simplifies the code. + * --- + * Similar to invariant but only logs a warning if the condition is not met. + * This can be used to log issues in development environments in critical + * paths. Removing the logging code for production environments will keep the + * same logic and follow the same code paths. + */ + + var lowPriorityWarning = function () {}; + + { + var printWarning = function (format) { + for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + + var argIndex = 0; + var message = 'Warning: ' + format.replace(/%s/g, function () { + return args[argIndex++]; + }); + if (typeof console !== 'undefined') { + console.warn(message); + } + try { + // --- Welcome to debugging React --- + // This error was thrown as a convenience so that you can use this stack + // to find the callsite that caused this warning to fire. + throw new Error(message); + } catch (x) {} + }; + + lowPriorityWarning = function (condition, format) { + if (format === undefined) { + throw new Error('`lowPriorityWarning(condition, format, ...args)` requires a warning ' + 'message argument'); + } + if (!condition) { + for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) { + args[_key2 - 2] = arguments[_key2]; + } + + printWarning.apply(undefined, [format].concat(args)); + } + }; + } + + var lowPriorityWarning$1 = lowPriorityWarning; + + function typeOf(object) { + if (typeof object === 'object' && object !== null) { + var $$typeof = object.$$typeof; + switch ($$typeof) { + case REACT_ELEMENT_TYPE: + var type = object.type; + + switch (type) { + case REACT_ASYNC_MODE_TYPE: + case REACT_CONCURRENT_MODE_TYPE: + case REACT_FRAGMENT_TYPE: + case REACT_PROFILER_TYPE: + case REACT_STRICT_MODE_TYPE: + case REACT_SUSPENSE_TYPE: + return type; + default: + var $$typeofType = type && type.$$typeof; + + switch ($$typeofType) { + case REACT_CONTEXT_TYPE: + case REACT_FORWARD_REF_TYPE: + case REACT_PROVIDER_TYPE: + return $$typeofType; + default: + return $$typeof; + } + } + case REACT_LAZY_TYPE: + case REACT_MEMO_TYPE: + case REACT_PORTAL_TYPE: + return $$typeof; + } + } + + return undefined; + } + + // AsyncMode is deprecated along with isAsyncMode + var AsyncMode = REACT_ASYNC_MODE_TYPE; + var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE; + var ContextConsumer = REACT_CONTEXT_TYPE; + var ContextProvider = REACT_PROVIDER_TYPE; + var Element = REACT_ELEMENT_TYPE; + var ForwardRef = REACT_FORWARD_REF_TYPE; + var Fragment = REACT_FRAGMENT_TYPE; + var Lazy = REACT_LAZY_TYPE; + var Memo = REACT_MEMO_TYPE; + var Portal = REACT_PORTAL_TYPE; + var Profiler = REACT_PROFILER_TYPE; + var StrictMode = REACT_STRICT_MODE_TYPE; + var Suspense = REACT_SUSPENSE_TYPE; + + var hasWarnedAboutDeprecatedIsAsyncMode = false; + + // AsyncMode should be deprecated + function isAsyncMode(object) { + { + if (!hasWarnedAboutDeprecatedIsAsyncMode) { + hasWarnedAboutDeprecatedIsAsyncMode = true; + lowPriorityWarning$1(false, 'The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.'); + } + } + return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE; + } + function isConcurrentMode(object) { + return typeOf(object) === REACT_CONCURRENT_MODE_TYPE; + } + function isContextConsumer(object) { + return typeOf(object) === REACT_CONTEXT_TYPE; + } + function isContextProvider(object) { + return typeOf(object) === REACT_PROVIDER_TYPE; + } + function isElement(object) { + return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE; + } + function isForwardRef(object) { + return typeOf(object) === REACT_FORWARD_REF_TYPE; + } + function isFragment(object) { + return typeOf(object) === REACT_FRAGMENT_TYPE; + } + function isLazy(object) { + return typeOf(object) === REACT_LAZY_TYPE; + } + function isMemo(object) { + return typeOf(object) === REACT_MEMO_TYPE; + } + function isPortal(object) { + return typeOf(object) === REACT_PORTAL_TYPE; + } + function isProfiler(object) { + return typeOf(object) === REACT_PROFILER_TYPE; + } + function isStrictMode(object) { + return typeOf(object) === REACT_STRICT_MODE_TYPE; + } + function isSuspense(object) { + return typeOf(object) === REACT_SUSPENSE_TYPE; + } + + exports.typeOf = typeOf; + exports.AsyncMode = AsyncMode; + exports.ConcurrentMode = ConcurrentMode; + exports.ContextConsumer = ContextConsumer; + exports.ContextProvider = ContextProvider; + exports.Element = Element; + exports.ForwardRef = ForwardRef; + exports.Fragment = Fragment; + exports.Lazy = Lazy; + exports.Memo = Memo; + exports.Portal = Portal; + exports.Profiler = Profiler; + exports.StrictMode = StrictMode; + exports.Suspense = Suspense; + exports.isValidElementType = isValidElementType; + exports.isAsyncMode = isAsyncMode; + exports.isConcurrentMode = isConcurrentMode; + exports.isContextConsumer = isContextConsumer; + exports.isContextProvider = isContextProvider; + exports.isElement = isElement; + exports.isForwardRef = isForwardRef; + exports.isFragment = isFragment; + exports.isLazy = isLazy; + exports.isMemo = isMemo; + exports.isPortal = isPortal; + exports.isProfiler = isProfiler; + exports.isStrictMode = isStrictMode; + exports.isSuspense = isSuspense; + })(); + } + }); + + unwrapExports(reactIs_development); + var reactIs_development_1 = reactIs_development.typeOf; + var reactIs_development_2 = reactIs_development.AsyncMode; + var reactIs_development_3 = reactIs_development.ConcurrentMode; + var reactIs_development_4 = reactIs_development.ContextConsumer; + var reactIs_development_5 = reactIs_development.ContextProvider; + var reactIs_development_6 = reactIs_development.Element; + var reactIs_development_7 = reactIs_development.ForwardRef; + var reactIs_development_8 = reactIs_development.Fragment; + var reactIs_development_9 = reactIs_development.Lazy; + var reactIs_development_10 = reactIs_development.Memo; + var reactIs_development_11 = reactIs_development.Portal; + var reactIs_development_12 = reactIs_development.Profiler; + var reactIs_development_13 = reactIs_development.StrictMode; + var reactIs_development_14 = reactIs_development.Suspense; + var reactIs_development_15 = reactIs_development.isValidElementType; + var reactIs_development_16 = reactIs_development.isAsyncMode; + var reactIs_development_17 = reactIs_development.isConcurrentMode; + var reactIs_development_18 = reactIs_development.isContextConsumer; + var reactIs_development_19 = reactIs_development.isContextProvider; + var reactIs_development_20 = reactIs_development.isElement; + var reactIs_development_21 = reactIs_development.isForwardRef; + var reactIs_development_22 = reactIs_development.isFragment; + var reactIs_development_23 = reactIs_development.isLazy; + var reactIs_development_24 = reactIs_development.isMemo; + var reactIs_development_25 = reactIs_development.isPortal; + var reactIs_development_26 = reactIs_development.isProfiler; + var reactIs_development_27 = reactIs_development.isStrictMode; + var reactIs_development_28 = reactIs_development.isSuspense; + + var reactIs = createCommonjsModule(function (module) { + + { + module.exports = reactIs_development; + } + }); + var reactIs_1 = reactIs.isValidElementType; + + /* + object-assign + (c) Sindre Sorhus + @license MIT + */ + /* eslint-disable no-unused-vars */ + var getOwnPropertySymbols = Object.getOwnPropertySymbols; + var hasOwnProperty = Object.prototype.hasOwnProperty; + var propIsEnumerable = Object.prototype.propertyIsEnumerable; + + function toObject(val) { + if (val === null || val === undefined) { + throw new TypeError('Object.assign cannot be called with null or undefined'); + } + + return Object(val); + } + + function shouldUseNative() { + try { + if (!Object.assign) { + return false; + } + + // Detect buggy property enumeration order in older V8 versions. + + // https://bugs.chromium.org/p/v8/issues/detail?id=4118 + var test1 = new String('abc'); // eslint-disable-line no-new-wrappers + test1[5] = 'de'; + if (Object.getOwnPropertyNames(test1)[0] === '5') { + return false; + } + + // https://bugs.chromium.org/p/v8/issues/detail?id=3056 + var test2 = {}; + for (var i = 0; i < 10; i++) { + test2['_' + String.fromCharCode(i)] = i; + } + var order2 = Object.getOwnPropertyNames(test2).map(function (n) { + return test2[n]; + }); + if (order2.join('') !== '0123456789') { + return false; + } + + // https://bugs.chromium.org/p/v8/issues/detail?id=3056 + var test3 = {}; + 'abcdefghijklmnopqrst'.split('').forEach(function (letter) { + test3[letter] = letter; + }); + if (Object.keys(Object.assign({}, test3)).join('') !== + 'abcdefghijklmnopqrst') { + return false; + } + + return true; + } catch (err) { + // We don't expect any of the above to throw, but better to be safe. + return false; + } + } + + var objectAssign = shouldUseNative() ? Object.assign : function (target, source) { + var from; + var to = toObject(target); + var symbols; + + for (var s = 1; s < arguments.length; s++) { + from = Object(arguments[s]); + + for (var key in from) { + if (hasOwnProperty.call(from, key)) { + to[key] = from[key]; + } + } + + if (getOwnPropertySymbols) { + symbols = getOwnPropertySymbols(from); + for (var i = 0; i < symbols.length; i++) { + if (propIsEnumerable.call(from, symbols[i])) { + to[symbols[i]] = from[symbols[i]]; + } + } + } + } + + return to; + }; + + /** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + + var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; + + var ReactPropTypesSecret_1 = ReactPropTypesSecret; + + var printWarning = function() {}; + + { + var ReactPropTypesSecret$1 = ReactPropTypesSecret_1; + var loggedTypeFailures = {}; + var has = Function.call.bind(Object.prototype.hasOwnProperty); + + printWarning = function(text) { + var message = 'Warning: ' + text; + if (typeof console !== 'undefined') { + console.error(message); + } + try { + // --- Welcome to debugging React --- + // This error was thrown as a convenience so that you can use this stack + // to find the callsite that caused this warning to fire. + throw new Error(message); + } catch (x) {} + }; + } + + /** + * Assert that the values match with the type specs. + * Error messages are memorized and will only be shown once. + * + * @param {object} typeSpecs Map of name to a ReactPropType + * @param {object} values Runtime values that need to be type-checked + * @param {string} location e.g. "prop", "context", "child context" + * @param {string} componentName Name of the component for error messages. + * @param {?Function} getStack Returns the component stack. + * @private + */ + function checkPropTypes(typeSpecs, values, location, componentName, getStack) { + { + for (var typeSpecName in typeSpecs) { + if (has(typeSpecs, typeSpecName)) { + var error; + // Prop type validation may throw. In case they do, we don't want to + // fail the render phase where it didn't fail before. So we log it. + // After these have been cleaned up, we'll let them throw. + try { + // This is intentionally an invariant that gets caught. It's the same + // behavior as without this statement except with a better message. + if (typeof typeSpecs[typeSpecName] !== 'function') { + var err = Error( + (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + ); + err.name = 'Invariant Violation'; + throw err; + } + error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret$1); + } catch (ex) { + error = ex; + } + if (error && !(error instanceof Error)) { + printWarning( + (componentName || 'React class') + ': type specification of ' + + location + ' `' + typeSpecName + '` is invalid; the type checker ' + + 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' + + 'You may have forgotten to pass an argument to the type checker ' + + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + + 'shape all require an argument).' + ); + } + if (error instanceof Error && !(error.message in loggedTypeFailures)) { + // Only monitor this failure once because there tends to be a lot of the + // same error. + loggedTypeFailures[error.message] = true; + + var stack = getStack ? getStack() : ''; + + printWarning( + 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '') + ); + } + } + } + } + } + + /** + * Resets warning cache when testing. + * + * @private + */ + checkPropTypes.resetWarningCache = function() { + { + loggedTypeFailures = {}; + } + }; + + var checkPropTypes_1 = checkPropTypes; + + var has$1 = Function.call.bind(Object.prototype.hasOwnProperty); + var printWarning$1 = function() {}; + + { + printWarning$1 = function(text) { + var message = 'Warning: ' + text; + if (typeof console !== 'undefined') { + console.error(message); + } + try { + // --- Welcome to debugging React --- + // This error was thrown as a convenience so that you can use this stack + // to find the callsite that caused this warning to fire. + throw new Error(message); + } catch (x) {} + }; + } + + function emptyFunctionThatReturnsNull() { + return null; + } + + var factoryWithTypeCheckers = function(isValidElement, throwOnDirectAccess) { + /* global Symbol */ + var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; + var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec. + + /** + * Returns the iterator method function contained on the iterable object. + * + * Be sure to invoke the function with the iterable as context: + * + * var iteratorFn = getIteratorFn(myIterable); + * if (iteratorFn) { + * var iterator = iteratorFn.call(myIterable); + * ... + * } + * + * @param {?object} maybeIterable + * @return {?function} + */ + function getIteratorFn(maybeIterable) { + var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]); + if (typeof iteratorFn === 'function') { + return iteratorFn; + } + } + + /** + * Collection of methods that allow declaration and validation of props that are + * supplied to React components. Example usage: + * + * var Props = require('ReactPropTypes'); + * var MyArticle = React.createClass({ + * propTypes: { + * // An optional string prop named "description". + * description: Props.string, + * + * // A required enum prop named "category". + * category: Props.oneOf(['News','Photos']).isRequired, + * + * // A prop named "dialog" that requires an instance of Dialog. + * dialog: Props.instanceOf(Dialog).isRequired + * }, + * render: function() { ... } + * }); + * + * A more formal specification of how these methods are used: + * + * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...) + * decl := ReactPropTypes.{type}(.isRequired)? + * + * Each and every declaration produces a function with the same signature. This + * allows the creation of custom validation functions. For example: + * + * var MyLink = React.createClass({ + * propTypes: { + * // An optional string or URI prop named "href". + * href: function(props, propName, componentName) { + * var propValue = props[propName]; + * if (propValue != null && typeof propValue !== 'string' && + * !(propValue instanceof URI)) { + * return new Error( + * 'Expected a string or an URI for ' + propName + ' in ' + + * componentName + * ); + * } + * } + * }, + * render: function() {...} + * }); + * + * @internal + */ + + var ANONYMOUS = '<>'; + + // Important! + // Keep this list in sync with production version in `./factoryWithThrowingShims.js`. + var ReactPropTypes = { + array: createPrimitiveTypeChecker('array'), + bool: createPrimitiveTypeChecker('boolean'), + func: createPrimitiveTypeChecker('function'), + number: createPrimitiveTypeChecker('number'), + object: createPrimitiveTypeChecker('object'), + string: createPrimitiveTypeChecker('string'), + symbol: createPrimitiveTypeChecker('symbol'), + + any: createAnyTypeChecker(), + arrayOf: createArrayOfTypeChecker, + element: createElementTypeChecker(), + elementType: createElementTypeTypeChecker(), + instanceOf: createInstanceTypeChecker, + node: createNodeChecker(), + objectOf: createObjectOfTypeChecker, + oneOf: createEnumTypeChecker, + oneOfType: createUnionTypeChecker, + shape: createShapeTypeChecker, + exact: createStrictShapeTypeChecker, + }; + + /** + * inlined Object.is polyfill to avoid requiring consumers ship their own + * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is + */ + /*eslint-disable no-self-compare*/ + function is(x, y) { + // SameValue algorithm + if (x === y) { + // Steps 1-5, 7-10 + // Steps 6.b-6.e: +0 != -0 + return x !== 0 || 1 / x === 1 / y; + } else { + // Step 6.a: NaN == NaN + return x !== x && y !== y; + } + } + /*eslint-enable no-self-compare*/ + + /** + * We use an Error-like object for backward compatibility as people may call + * PropTypes directly and inspect their output. However, we don't use real + * Errors anymore. We don't inspect their stack anyway, and creating them + * is prohibitively expensive if they are created too often, such as what + * happens in oneOfType() for any type before the one that matched. + */ + function PropTypeError(message) { + this.message = message; + this.stack = ''; + } + // Make `instanceof Error` still work for returned errors. + PropTypeError.prototype = Error.prototype; + + function createChainableTypeChecker(validate) { + { + var manualPropTypeCallCache = {}; + var manualPropTypeWarningCount = 0; + } + function checkType(isRequired, props, propName, componentName, location, propFullName, secret) { + componentName = componentName || ANONYMOUS; + propFullName = propFullName || propName; + + if (secret !== ReactPropTypesSecret_1) { + if (throwOnDirectAccess) { + // New behavior only for users of `prop-types` package + var err = new Error( + 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + + 'Use `PropTypes.checkPropTypes()` to call them. ' + + 'Read more at http://fb.me/use-check-prop-types' + ); + err.name = 'Invariant Violation'; + throw err; + } else if ( typeof console !== 'undefined') { + // Old behavior for people using React.PropTypes + var cacheKey = componentName + ':' + propName; + if ( + !manualPropTypeCallCache[cacheKey] && + // Avoid spamming the console because they are often not actionable except for lib authors + manualPropTypeWarningCount < 3 + ) { + printWarning$1( + 'You are manually calling a React.PropTypes validation ' + + 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' + + 'and will throw in the standalone `prop-types` package. ' + + 'You may be seeing this warning due to a third-party PropTypes ' + + 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.' + ); + manualPropTypeCallCache[cacheKey] = true; + manualPropTypeWarningCount++; + } + } + } + if (props[propName] == null) { + if (isRequired) { + if (props[propName] === null) { + return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.')); + } + return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.')); + } + return null; + } else { + return validate(props, propName, componentName, location, propFullName); + } + } + + var chainedCheckType = checkType.bind(null, false); + chainedCheckType.isRequired = checkType.bind(null, true); + + return chainedCheckType; + } + + function createPrimitiveTypeChecker(expectedType) { + function validate(props, propName, componentName, location, propFullName, secret) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== expectedType) { + // `propValue` being instance of, say, date/regexp, pass the 'object' + // check, but we can offer a more precise error message here rather than + // 'of type `object`'. + var preciseType = getPreciseType(propValue); + + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createAnyTypeChecker() { + return createChainableTypeChecker(emptyFunctionThatReturnsNull); + } + + function createArrayOfTypeChecker(typeChecker) { + function validate(props, propName, componentName, location, propFullName) { + if (typeof typeChecker !== 'function') { + return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.'); + } + var propValue = props[propName]; + if (!Array.isArray(propValue)) { + var propType = getPropType(propValue); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.')); + } + for (var i = 0; i < propValue.length; i++) { + var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret_1); + if (error instanceof Error) { + return error; + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createElementTypeChecker() { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + if (!isValidElement(propValue)) { + var propType = getPropType(propValue); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createElementTypeTypeChecker() { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + if (!reactIs.isValidElementType(propValue)) { + var propType = getPropType(propValue); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createInstanceTypeChecker(expectedClass) { + function validate(props, propName, componentName, location, propFullName) { + if (!(props[propName] instanceof expectedClass)) { + var expectedClassName = expectedClass.name || ANONYMOUS; + var actualClassName = getClassName(props[propName]); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createEnumTypeChecker(expectedValues) { + if (!Array.isArray(expectedValues)) { + { + if (arguments.length > 1) { + printWarning$1( + 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' + + 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).' + ); + } else { + printWarning$1('Invalid argument supplied to oneOf, expected an array.'); + } + } + return emptyFunctionThatReturnsNull; + } + + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + for (var i = 0; i < expectedValues.length; i++) { + if (is(propValue, expectedValues[i])) { + return null; + } + } + + var valuesString = JSON.stringify(expectedValues, function replacer(key, value) { + var type = getPreciseType(value); + if (type === 'symbol') { + return String(value); + } + return value; + }); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.')); + } + return createChainableTypeChecker(validate); + } + + function createObjectOfTypeChecker(typeChecker) { + function validate(props, propName, componentName, location, propFullName) { + if (typeof typeChecker !== 'function') { + return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.'); + } + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.')); + } + for (var key in propValue) { + if (has$1(propValue, key)) { + var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret_1); + if (error instanceof Error) { + return error; + } + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createUnionTypeChecker(arrayOfTypeCheckers) { + if (!Array.isArray(arrayOfTypeCheckers)) { + printWarning$1('Invalid argument supplied to oneOfType, expected an instance of array.') ; + return emptyFunctionThatReturnsNull; + } + + for (var i = 0; i < arrayOfTypeCheckers.length; i++) { + var checker = arrayOfTypeCheckers[i]; + if (typeof checker !== 'function') { + printWarning$1( + 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' + + 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.' + ); + return emptyFunctionThatReturnsNull; + } + } + + function validate(props, propName, componentName, location, propFullName) { + for (var i = 0; i < arrayOfTypeCheckers.length; i++) { + var checker = arrayOfTypeCheckers[i]; + if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret_1) == null) { + return null; + } + } + + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.')); + } + return createChainableTypeChecker(validate); + } + + function createNodeChecker() { + function validate(props, propName, componentName, location, propFullName) { + if (!isNode(props[propName])) { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createShapeTypeChecker(shapeTypes) { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); + } + for (var key in shapeTypes) { + var checker = shapeTypes[key]; + if (!checker) { + continue; + } + var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret_1); + if (error) { + return error; + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createStrictShapeTypeChecker(shapeTypes) { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); + } + // We need to check all keys in case some are required but missing from + // props. + var allKeys = objectAssign({}, props[propName], shapeTypes); + for (var key in allKeys) { + var checker = shapeTypes[key]; + if (!checker) { + return new PropTypeError( + 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' + + '\nBad object: ' + JSON.stringify(props[propName], null, ' ') + + '\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ') + ); + } + var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret_1); + if (error) { + return error; + } + } + return null; + } + + return createChainableTypeChecker(validate); + } + + function isNode(propValue) { + switch (typeof propValue) { + case 'number': + case 'string': + case 'undefined': + return true; + case 'boolean': + return !propValue; + case 'object': + if (Array.isArray(propValue)) { + return propValue.every(isNode); + } + if (propValue === null || isValidElement(propValue)) { + return true; + } + + var iteratorFn = getIteratorFn(propValue); + if (iteratorFn) { + var iterator = iteratorFn.call(propValue); + var step; + if (iteratorFn !== propValue.entries) { + while (!(step = iterator.next()).done) { + if (!isNode(step.value)) { + return false; + } + } + } else { + // Iterator will provide entry [k,v] tuples rather than values. + while (!(step = iterator.next()).done) { + var entry = step.value; + if (entry) { + if (!isNode(entry[1])) { + return false; + } + } + } + } + } else { + return false; + } + + return true; + default: + return false; + } + } + + function isSymbol(propType, propValue) { + // Native Symbol. + if (propType === 'symbol') { + return true; + } + + // falsy value can't be a Symbol + if (!propValue) { + return false; + } + + // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol' + if (propValue['@@toStringTag'] === 'Symbol') { + return true; + } + + // Fallback for non-spec compliant Symbols which are polyfilled. + if (typeof Symbol === 'function' && propValue instanceof Symbol) { + return true; + } + + return false; + } + + // Equivalent of `typeof` but with special handling for array and regexp. + function getPropType(propValue) { + var propType = typeof propValue; + if (Array.isArray(propValue)) { + return 'array'; + } + if (propValue instanceof RegExp) { + // Old webkits (at least until Android 4.0) return 'function' rather than + // 'object' for typeof a RegExp. We'll normalize this here so that /bla/ + // passes PropTypes.object. + return 'object'; + } + if (isSymbol(propType, propValue)) { + return 'symbol'; + } + return propType; + } + + // This handles more types than `getPropType`. Only used for error messages. + // See `createPrimitiveTypeChecker`. + function getPreciseType(propValue) { + if (typeof propValue === 'undefined' || propValue === null) { + return '' + propValue; + } + var propType = getPropType(propValue); + if (propType === 'object') { + if (propValue instanceof Date) { + return 'date'; + } else if (propValue instanceof RegExp) { + return 'regexp'; + } + } + return propType; + } + + // Returns a string that is postfixed to a warning about an invalid type. + // For example, "undefined" or "of type array" + function getPostfixForTypeWarning(value) { + var type = getPreciseType(value); + switch (type) { + case 'array': + case 'object': + return 'an ' + type; + case 'boolean': + case 'date': + case 'regexp': + return 'a ' + type; + default: + return type; + } + } + + // Returns class name of the object, if any. + function getClassName(propValue) { + if (!propValue.constructor || !propValue.constructor.name) { + return ANONYMOUS; + } + return propValue.constructor.name; + } + + ReactPropTypes.checkPropTypes = checkPropTypes_1; + ReactPropTypes.resetWarningCache = checkPropTypes_1.resetWarningCache; + ReactPropTypes.PropTypes = ReactPropTypes; + + return ReactPropTypes; + }; + + var propTypes = createCommonjsModule(function (module) { + /** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + + { + var ReactIs = reactIs; + + // By explicitly using `prop-types` you are opting into new development behavior. + // http://fb.me/prop-types-in-prod + var throwOnDirectAccess = true; + module.exports = factoryWithTypeCheckers(ReactIs.isElement, throwOnDirectAccess); + } + }); + + function _extends() { + _extends = Object.assign || function (target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + + return target; + }; + + return _extends.apply(this, arguments); + } + + function isAbsolute(pathname) { + return pathname.charAt(0) === '/'; + } + + // About 1.5x faster than the two-arg version of Array#splice() + function spliceOne(list, index) { + for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) { + list[i] = list[k]; + } + + list.pop(); + } + + // This implementation is based heavily on node's url.parse + function resolvePathname(to) { + var from = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; + + var toParts = to && to.split('/') || []; + var fromParts = from && from.split('/') || []; + + var isToAbs = to && isAbsolute(to); + var isFromAbs = from && isAbsolute(from); + var mustEndAbs = isToAbs || isFromAbs; + + if (to && isAbsolute(to)) { + // to is absolute + fromParts = toParts; + } else if (toParts.length) { + // to is relative, drop the filename + fromParts.pop(); + fromParts = fromParts.concat(toParts); + } + + if (!fromParts.length) return '/'; + + var hasTrailingSlash = void 0; + if (fromParts.length) { + var last = fromParts[fromParts.length - 1]; + hasTrailingSlash = last === '.' || last === '..' || last === ''; + } else { + hasTrailingSlash = false; + } + + var up = 0; + for (var i = fromParts.length; i >= 0; i--) { + var part = fromParts[i]; + + if (part === '.') { + spliceOne(fromParts, i); + } else if (part === '..') { + spliceOne(fromParts, i); + up++; + } else if (up) { + spliceOne(fromParts, i); + up--; + } + } + + if (!mustEndAbs) for (; up--; up) { + fromParts.unshift('..'); + }if (mustEndAbs && fromParts[0] !== '' && (!fromParts[0] || !isAbsolute(fromParts[0]))) fromParts.unshift(''); + + var result = fromParts.join('/'); + + if (hasTrailingSlash && result.substr(-1) !== '/') result += '/'; + + return result; + } + + var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + + function valueEqual(a, b) { + if (a === b) return true; + + if (a == null || b == null) return false; + + if (Array.isArray(a)) { + return Array.isArray(b) && a.length === b.length && a.every(function (item, index) { + return valueEqual(item, b[index]); + }); + } + + var aType = typeof a === 'undefined' ? 'undefined' : _typeof(a); + var bType = typeof b === 'undefined' ? 'undefined' : _typeof(b); + + if (aType !== bType) return false; + + if (aType === 'object') { + var aValue = a.valueOf(); + var bValue = b.valueOf(); + + if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue); + + var aKeys = Object.keys(a); + var bKeys = Object.keys(b); + + if (aKeys.length !== bKeys.length) return false; + + return aKeys.every(function (key) { + return valueEqual(a[key], b[key]); + }); + } + + return false; + } + + function warning(condition, message) { + { + if (condition) { + return; + } + + var text = "Warning: " + message; + + if (typeof console !== 'undefined') { + console.warn(text); + } + + try { + throw Error(text); + } catch (x) {} + } + } + + var prefix = 'Invariant failed'; + function invariant(condition, message) { + if (condition) { + return; + } + + { + throw new Error(prefix + ": " + (message || '')); + } + } + + function addLeadingSlash(path) { + return path.charAt(0) === '/' ? path : '/' + path; + } + function stripLeadingSlash(path) { + return path.charAt(0) === '/' ? path.substr(1) : path; + } + function hasBasename(path, prefix) { + return new RegExp('^' + prefix + '(\\/|\\?|#|$)', 'i').test(path); + } + function stripBasename(path, prefix) { + return hasBasename(path, prefix) ? path.substr(prefix.length) : path; + } + function stripTrailingSlash(path) { + return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path; + } + function parsePath(path) { + var pathname = path || '/'; + var search = ''; + var hash = ''; + var hashIndex = pathname.indexOf('#'); + + if (hashIndex !== -1) { + hash = pathname.substr(hashIndex); + pathname = pathname.substr(0, hashIndex); + } + + var searchIndex = pathname.indexOf('?'); + + if (searchIndex !== -1) { + search = pathname.substr(searchIndex); + pathname = pathname.substr(0, searchIndex); + } + + return { + pathname: pathname, + search: search === '?' ? '' : search, + hash: hash === '#' ? '' : hash + }; + } + function createPath(location) { + var pathname = location.pathname, + search = location.search, + hash = location.hash; + var path = pathname || '/'; + if (search && search !== '?') path += search.charAt(0) === '?' ? search : "?" + search; + if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : "#" + hash; + return path; + } + + function createLocation(path, state, key, currentLocation) { + var location; + + if (typeof path === 'string') { + // Two-arg form: push(path, state) + location = parsePath(path); + location.state = state; + } else { + // One-arg form: push(location) + location = _extends({}, path); + if (location.pathname === undefined) location.pathname = ''; + + if (location.search) { + if (location.search.charAt(0) !== '?') location.search = '?' + location.search; + } else { + location.search = ''; + } + + if (location.hash) { + if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash; + } else { + location.hash = ''; + } + + if (state !== undefined && location.state === undefined) location.state = state; + } + + try { + location.pathname = decodeURI(location.pathname); + } catch (e) { + if (e instanceof URIError) { + throw new URIError('Pathname "' + location.pathname + '" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.'); + } else { + throw e; + } + } + + if (key) location.key = key; + + if (currentLocation) { + // Resolve incomplete/relative pathname relative to current location. + if (!location.pathname) { + location.pathname = currentLocation.pathname; + } else if (location.pathname.charAt(0) !== '/') { + location.pathname = resolvePathname(location.pathname, currentLocation.pathname); + } + } else { + // When there is no prior location and pathname is empty, set it to / + if (!location.pathname) { + location.pathname = '/'; + } + } + + return location; + } + function locationsAreEqual(a, b) { + return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state); + } + + function createTransitionManager() { + var prompt = null; + + function setPrompt(nextPrompt) { + warning(prompt == null, 'A history supports only one prompt at a time') ; + prompt = nextPrompt; + return function () { + if (prompt === nextPrompt) prompt = null; + }; + } + + function confirmTransitionTo(location, action, getUserConfirmation, callback) { + // TODO: If another transition starts while we're still confirming + // the previous one, we may end up in a weird state. Figure out the + // best way to handle this. + if (prompt != null) { + var result = typeof prompt === 'function' ? prompt(location, action) : prompt; + + if (typeof result === 'string') { + if (typeof getUserConfirmation === 'function') { + getUserConfirmation(result, callback); + } else { + warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') ; + callback(true); + } + } else { + // Return false from a transition hook to cancel the transition. + callback(result !== false); + } + } else { + callback(true); + } + } + + var listeners = []; + + function appendListener(fn) { + var isActive = true; + + function listener() { + if (isActive) fn.apply(void 0, arguments); + } + + listeners.push(listener); + return function () { + isActive = false; + listeners = listeners.filter(function (item) { + return item !== listener; + }); + }; + } + + function notifyListeners() { + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + listeners.forEach(function (listener) { + return listener.apply(void 0, args); + }); + } + + return { + setPrompt: setPrompt, + confirmTransitionTo: confirmTransitionTo, + appendListener: appendListener, + notifyListeners: notifyListeners + }; + } + + var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement); + function getConfirmation(message, callback) { + callback(window.confirm(message)); // eslint-disable-line no-alert + } + /** + * Returns true if the HTML5 history API is supported. Taken from Modernizr. + * + * https://github.com/Modernizr/Modernizr/blob/master/LICENSE + * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js + * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586 + */ + + function supportsHistory() { + var ua = window.navigator.userAgent; + if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false; + return window.history && 'pushState' in window.history; + } + /** + * Returns true if browser fires popstate on hash change. + * IE10 and IE11 do not. + */ + + function supportsPopStateOnHashChange() { + return window.navigator.userAgent.indexOf('Trident') === -1; + } + /** + * Returns false if using go(n) with hash history causes a full page reload. + */ + + function supportsGoWithoutReloadUsingHash() { + return window.navigator.userAgent.indexOf('Firefox') === -1; + } + /** + * Returns true if a given popstate event is an extraneous WebKit event. + * Accounts for the fact that Chrome on iOS fires real popstate events + * containing undefined state when pressing the back button. + */ + + function isExtraneousPopstateEvent(event) { + event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1; + } + + var PopStateEvent = 'popstate'; + var HashChangeEvent = 'hashchange'; + + function getHistoryState() { + try { + return window.history.state || {}; + } catch (e) { + // IE 11 sometimes throws when accessing window.history.state + // See https://github.com/ReactTraining/history/pull/289 + return {}; + } + } + /** + * Creates a history object that uses the HTML5 history API including + * pushState, replaceState, and the popstate event. + */ + + + function createBrowserHistory(props) { + if (props === void 0) { + props = {}; + } + + !canUseDOM ? invariant(false, 'Browser history needs a DOM') : void 0; + var globalHistory = window.history; + var canUseHistory = supportsHistory(); + var needsHashChangeListener = !supportsPopStateOnHashChange(); + var _props = props, + _props$forceRefresh = _props.forceRefresh, + forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh, + _props$getUserConfirm = _props.getUserConfirmation, + getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm, + _props$keyLength = _props.keyLength, + keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength; + var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : ''; + + function getDOMLocation(historyState) { + var _ref = historyState || {}, + key = _ref.key, + state = _ref.state; + + var _window$location = window.location, + pathname = _window$location.pathname, + search = _window$location.search, + hash = _window$location.hash; + var path = pathname + search + hash; + warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path "' + path + '" to begin with "' + basename + '".') ; + if (basename) path = stripBasename(path, basename); + return createLocation(path, state, key); + } + + function createKey() { + return Math.random().toString(36).substr(2, keyLength); + } + + var transitionManager = createTransitionManager(); + + function setState(nextState) { + _extends(history, nextState); + + history.length = globalHistory.length; + transitionManager.notifyListeners(history.location, history.action); + } + + function handlePopState(event) { + // Ignore extraneous popstate events in WebKit. + if (isExtraneousPopstateEvent(event)) return; + handlePop(getDOMLocation(event.state)); + } + + function handleHashChange() { + handlePop(getDOMLocation(getHistoryState())); + } + + var forceNextPop = false; + + function handlePop(location) { + if (forceNextPop) { + forceNextPop = false; + setState(); + } else { + var action = 'POP'; + transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { + if (ok) { + setState({ + action: action, + location: location + }); + } else { + revertPop(location); + } + }); + } + } + + function revertPop(fromLocation) { + var toLocation = history.location; // TODO: We could probably make this more reliable by + // keeping a list of keys we've seen in sessionStorage. + // Instead, we just default to 0 for keys we don't know. + + var toIndex = allKeys.indexOf(toLocation.key); + if (toIndex === -1) toIndex = 0; + var fromIndex = allKeys.indexOf(fromLocation.key); + if (fromIndex === -1) fromIndex = 0; + var delta = toIndex - fromIndex; + + if (delta) { + forceNextPop = true; + go(delta); + } + } + + var initialLocation = getDOMLocation(getHistoryState()); + var allKeys = [initialLocation.key]; // Public interface + + function createHref(location) { + return basename + createPath(location); + } + + function push(path, state) { + warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') ; + var action = 'PUSH'; + var location = createLocation(path, state, createKey(), history.location); + transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { + if (!ok) return; + var href = createHref(location); + var key = location.key, + state = location.state; + + if (canUseHistory) { + globalHistory.pushState({ + key: key, + state: state + }, null, href); + + if (forceRefresh) { + window.location.href = href; + } else { + var prevIndex = allKeys.indexOf(history.location.key); + var nextKeys = allKeys.slice(0, prevIndex === -1 ? 0 : prevIndex + 1); + nextKeys.push(location.key); + allKeys = nextKeys; + setState({ + action: action, + location: location + }); + } + } else { + warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') ; + window.location.href = href; + } + }); + } + + function replace(path, state) { + warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') ; + var action = 'REPLACE'; + var location = createLocation(path, state, createKey(), history.location); + transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { + if (!ok) return; + var href = createHref(location); + var key = location.key, + state = location.state; + + if (canUseHistory) { + globalHistory.replaceState({ + key: key, + state: state + }, null, href); + + if (forceRefresh) { + window.location.replace(href); + } else { + var prevIndex = allKeys.indexOf(history.location.key); + if (prevIndex !== -1) allKeys[prevIndex] = location.key; + setState({ + action: action, + location: location + }); + } + } else { + warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') ; + window.location.replace(href); + } + }); + } + + function go(n) { + globalHistory.go(n); + } + + function goBack() { + go(-1); + } + + function goForward() { + go(1); + } + + var listenerCount = 0; + + function checkDOMListeners(delta) { + listenerCount += delta; + + if (listenerCount === 1 && delta === 1) { + window.addEventListener(PopStateEvent, handlePopState); + if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange); + } else if (listenerCount === 0) { + window.removeEventListener(PopStateEvent, handlePopState); + if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange); + } + } + + var isBlocked = false; + + function block(prompt) { + if (prompt === void 0) { + prompt = false; + } + + var unblock = transitionManager.setPrompt(prompt); + + if (!isBlocked) { + checkDOMListeners(1); + isBlocked = true; + } + + return function () { + if (isBlocked) { + isBlocked = false; + checkDOMListeners(-1); + } + + return unblock(); + }; + } + + function listen(listener) { + var unlisten = transitionManager.appendListener(listener); + checkDOMListeners(1); + return function () { + checkDOMListeners(-1); + unlisten(); + }; + } + + var history = { + length: globalHistory.length, + action: 'POP', + location: initialLocation, + createHref: createHref, + push: push, + replace: replace, + go: go, + goBack: goBack, + goForward: goForward, + block: block, + listen: listen + }; + return history; + } + + var HashChangeEvent$1 = 'hashchange'; + var HashPathCoders = { + hashbang: { + encodePath: function encodePath(path) { + return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path); + }, + decodePath: function decodePath(path) { + return path.charAt(0) === '!' ? path.substr(1) : path; + } + }, + noslash: { + encodePath: stripLeadingSlash, + decodePath: addLeadingSlash + }, + slash: { + encodePath: addLeadingSlash, + decodePath: addLeadingSlash + } + }; + + function getHashPath() { + // We can't use window.location.hash here because it's not + // consistent across browsers - Firefox will pre-decode it! + var href = window.location.href; + var hashIndex = href.indexOf('#'); + return hashIndex === -1 ? '' : href.substring(hashIndex + 1); + } + + function pushHashPath(path) { + window.location.hash = path; + } + + function replaceHashPath(path) { + var hashIndex = window.location.href.indexOf('#'); + window.location.replace(window.location.href.slice(0, hashIndex >= 0 ? hashIndex : 0) + '#' + path); + } + + function createHashHistory(props) { + if (props === void 0) { + props = {}; + } + + !canUseDOM ? invariant(false, 'Hash history needs a DOM') : void 0; + var globalHistory = window.history; + var canGoWithoutReload = supportsGoWithoutReloadUsingHash(); + var _props = props, + _props$getUserConfirm = _props.getUserConfirmation, + getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm, + _props$hashType = _props.hashType, + hashType = _props$hashType === void 0 ? 'slash' : _props$hashType; + var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : ''; + var _HashPathCoders$hashT = HashPathCoders[hashType], + encodePath = _HashPathCoders$hashT.encodePath, + decodePath = _HashPathCoders$hashT.decodePath; + + function getDOMLocation() { + var path = decodePath(getHashPath()); + warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path "' + path + '" to begin with "' + basename + '".') ; + if (basename) path = stripBasename(path, basename); + return createLocation(path); + } + + var transitionManager = createTransitionManager(); + + function setState(nextState) { + _extends(history, nextState); + + history.length = globalHistory.length; + transitionManager.notifyListeners(history.location, history.action); + } + + var forceNextPop = false; + var ignorePath = null; + + function handleHashChange() { + var path = getHashPath(); + var encodedPath = encodePath(path); + + if (path !== encodedPath) { + // Ensure we always have a properly-encoded hash. + replaceHashPath(encodedPath); + } else { + var location = getDOMLocation(); + var prevLocation = history.location; + if (!forceNextPop && locationsAreEqual(prevLocation, location)) return; // A hashchange doesn't always == location change. + + if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace. + + ignorePath = null; + handlePop(location); + } + } + + function handlePop(location) { + if (forceNextPop) { + forceNextPop = false; + setState(); + } else { + var action = 'POP'; + transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { + if (ok) { + setState({ + action: action, + location: location + }); + } else { + revertPop(location); + } + }); + } + } + + function revertPop(fromLocation) { + var toLocation = history.location; // TODO: We could probably make this more reliable by + // keeping a list of paths we've seen in sessionStorage. + // Instead, we just default to 0 for paths we don't know. + + var toIndex = allPaths.lastIndexOf(createPath(toLocation)); + if (toIndex === -1) toIndex = 0; + var fromIndex = allPaths.lastIndexOf(createPath(fromLocation)); + if (fromIndex === -1) fromIndex = 0; + var delta = toIndex - fromIndex; + + if (delta) { + forceNextPop = true; + go(delta); + } + } // Ensure the hash is encoded properly before doing anything else. + + + var path = getHashPath(); + var encodedPath = encodePath(path); + if (path !== encodedPath) replaceHashPath(encodedPath); + var initialLocation = getDOMLocation(); + var allPaths = [createPath(initialLocation)]; // Public interface + + function createHref(location) { + return '#' + encodePath(basename + createPath(location)); + } + + function push(path, state) { + warning(state === undefined, 'Hash history cannot push state; it is ignored') ; + var action = 'PUSH'; + var location = createLocation(path, undefined, undefined, history.location); + transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { + if (!ok) return; + var path = createPath(location); + var encodedPath = encodePath(basename + path); + var hashChanged = getHashPath() !== encodedPath; + + if (hashChanged) { + // We cannot tell if a hashchange was caused by a PUSH, so we'd + // rather setState here and ignore the hashchange. The caveat here + // is that other hash histories in the page will consider it a POP. + ignorePath = path; + pushHashPath(encodedPath); + var prevIndex = allPaths.lastIndexOf(createPath(history.location)); + var nextPaths = allPaths.slice(0, prevIndex === -1 ? 0 : prevIndex + 1); + nextPaths.push(path); + allPaths = nextPaths; + setState({ + action: action, + location: location + }); + } else { + warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') ; + setState(); + } + }); + } + + function replace(path, state) { + warning(state === undefined, 'Hash history cannot replace state; it is ignored') ; + var action = 'REPLACE'; + var location = createLocation(path, undefined, undefined, history.location); + transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { + if (!ok) return; + var path = createPath(location); + var encodedPath = encodePath(basename + path); + var hashChanged = getHashPath() !== encodedPath; + + if (hashChanged) { + // We cannot tell if a hashchange was caused by a REPLACE, so we'd + // rather setState here and ignore the hashchange. The caveat here + // is that other hash histories in the page will consider it a POP. + ignorePath = path; + replaceHashPath(encodedPath); + } + + var prevIndex = allPaths.indexOf(createPath(history.location)); + if (prevIndex !== -1) allPaths[prevIndex] = path; + setState({ + action: action, + location: location + }); + }); + } + + function go(n) { + warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') ; + globalHistory.go(n); + } + + function goBack() { + go(-1); + } + + function goForward() { + go(1); + } + + var listenerCount = 0; + + function checkDOMListeners(delta) { + listenerCount += delta; + + if (listenerCount === 1 && delta === 1) { + window.addEventListener(HashChangeEvent$1, handleHashChange); + } else if (listenerCount === 0) { + window.removeEventListener(HashChangeEvent$1, handleHashChange); + } + } + + var isBlocked = false; + + function block(prompt) { + if (prompt === void 0) { + prompt = false; + } + + var unblock = transitionManager.setPrompt(prompt); + + if (!isBlocked) { + checkDOMListeners(1); + isBlocked = true; + } + + return function () { + if (isBlocked) { + isBlocked = false; + checkDOMListeners(-1); + } + + return unblock(); + }; + } + + function listen(listener) { + var unlisten = transitionManager.appendListener(listener); + checkDOMListeners(1); + return function () { + checkDOMListeners(-1); + unlisten(); + }; + } + + var history = { + length: globalHistory.length, + action: 'POP', + location: initialLocation, + createHref: createHref, + push: push, + replace: replace, + go: go, + goBack: goBack, + goForward: goForward, + block: block, + listen: listen + }; + return history; + } + + function clamp(n, lowerBound, upperBound) { + return Math.min(Math.max(n, lowerBound), upperBound); + } + /** + * Creates a history object that stores locations in memory. + */ + + + function createMemoryHistory(props) { + if (props === void 0) { + props = {}; + } + + var _props = props, + getUserConfirmation = _props.getUserConfirmation, + _props$initialEntries = _props.initialEntries, + initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries, + _props$initialIndex = _props.initialIndex, + initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex, + _props$keyLength = _props.keyLength, + keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength; + var transitionManager = createTransitionManager(); + + function setState(nextState) { + _extends(history, nextState); + + history.length = history.entries.length; + transitionManager.notifyListeners(history.location, history.action); + } + + function createKey() { + return Math.random().toString(36).substr(2, keyLength); + } + + var index = clamp(initialIndex, 0, initialEntries.length - 1); + var entries = initialEntries.map(function (entry) { + return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey()); + }); // Public interface + + var createHref = createPath; + + function push(path, state) { + warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') ; + var action = 'PUSH'; + var location = createLocation(path, state, createKey(), history.location); + transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { + if (!ok) return; + var prevIndex = history.index; + var nextIndex = prevIndex + 1; + var nextEntries = history.entries.slice(0); + + if (nextEntries.length > nextIndex) { + nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location); + } else { + nextEntries.push(location); + } + + setState({ + action: action, + location: location, + index: nextIndex, + entries: nextEntries + }); + }); + } + + function replace(path, state) { + warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') ; + var action = 'REPLACE'; + var location = createLocation(path, state, createKey(), history.location); + transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { + if (!ok) return; + history.entries[history.index] = location; + setState({ + action: action, + location: location + }); + }); + } + + function go(n) { + var nextIndex = clamp(history.index + n, 0, history.entries.length - 1); + var action = 'POP'; + var location = history.entries[nextIndex]; + transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { + if (ok) { + setState({ + action: action, + location: location, + index: nextIndex + }); + } else { + // Mimic the behavior of DOM histories by + // causing a render after a cancelled POP. + setState(); + } + }); + } + + function goBack() { + go(-1); + } + + function goForward() { + go(1); + } + + function canGo(n) { + var nextIndex = history.index + n; + return nextIndex >= 0 && nextIndex < history.entries.length; + } + + function block(prompt) { + if (prompt === void 0) { + prompt = false; + } + + return transitionManager.setPrompt(prompt); + } + + function listen(listener) { + return transitionManager.appendListener(listener); + } + + var history = { + length: entries.length, + action: 'POP', + location: entries[index], + index: index, + entries: entries, + createHref: createHref, + push: push, + replace: replace, + go: go, + goBack: goBack, + goForward: goForward, + canGo: canGo, + block: block, + listen: listen + }; + return history; + } + + function _inheritsLoose$1(subClass, superClass) { + subClass.prototype = Object.create(superClass.prototype); + subClass.prototype.constructor = subClass; + subClass.__proto__ = superClass; + } + + var MAX_SIGNED_31_BIT_INT = 1073741823; + var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {}; + + function getUniqueId() { + var key = '__global_unique_id__'; + return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1; + } + + function objectIs(x, y) { + if (x === y) { + return x !== 0 || 1 / x === 1 / y; + } else { + return x !== x && y !== y; + } + } + + function createEventEmitter(value) { + var handlers = []; + return { + on: function on(handler) { + handlers.push(handler); + }, + off: function off(handler) { + handlers = handlers.filter(function (h) { + return h !== handler; + }); + }, + get: function get() { + return value; + }, + set: function set(newValue, changedBits) { + value = newValue; + handlers.forEach(function (handler) { + return handler(value, changedBits); + }); + } + }; + } + + function onlyChild(children) { + return Array.isArray(children) ? children[0] : children; + } + + function createReactContext(defaultValue, calculateChangedBits) { + var _Provider$childContex, _Consumer$contextType; + + var contextProp = '__create-react-context-' + getUniqueId() + '__'; + + var Provider = /*#__PURE__*/function (_Component) { + _inheritsLoose$1(Provider, _Component); + + function Provider() { + var _this; + + _this = _Component.apply(this, arguments) || this; + _this.emitter = createEventEmitter(_this.props.value); + return _this; + } + + var _proto = Provider.prototype; + + _proto.getChildContext = function getChildContext() { + var _ref; + + return _ref = {}, _ref[contextProp] = this.emitter, _ref; + }; + + _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { + if (this.props.value !== nextProps.value) { + var oldValue = this.props.value; + var newValue = nextProps.value; + var changedBits; + + if (objectIs(oldValue, newValue)) { + changedBits = 0; + } else { + changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT; + + { + warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: ' + changedBits); + } + + changedBits |= 0; + + if (changedBits !== 0) { + this.emitter.set(nextProps.value, changedBits); + } + } + } + }; + + _proto.render = function render() { + return this.props.children; + }; + + return Provider; + }(React.Component); + + Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = propTypes.object.isRequired, _Provider$childContex); + + var Consumer = /*#__PURE__*/function (_Component2) { + _inheritsLoose$1(Consumer, _Component2); + + function Consumer() { + var _this2; + + _this2 = _Component2.apply(this, arguments) || this; + _this2.state = { + value: _this2.getValue() + }; + + _this2.onUpdate = function (newValue, changedBits) { + var observedBits = _this2.observedBits | 0; + + if ((observedBits & changedBits) !== 0) { + _this2.setState({ + value: _this2.getValue() + }); + } + }; + + return _this2; + } + + var _proto2 = Consumer.prototype; + + _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { + var observedBits = nextProps.observedBits; + this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits; + }; + + _proto2.componentDidMount = function componentDidMount() { + if (this.context[contextProp]) { + this.context[contextProp].on(this.onUpdate); + } + + var observedBits = this.props.observedBits; + this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits; + }; + + _proto2.componentWillUnmount = function componentWillUnmount() { + if (this.context[contextProp]) { + this.context[contextProp].off(this.onUpdate); + } + }; + + _proto2.getValue = function getValue() { + if (this.context[contextProp]) { + return this.context[contextProp].get(); + } else { + return defaultValue; + } + }; + + _proto2.render = function render() { + return onlyChild(this.props.children)(this.state.value); + }; + + return Consumer; + }(React.Component); + + Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = propTypes.object, _Consumer$contextType); + return { + Provider: Provider, + Consumer: Consumer + }; + } + + var index = React__default.createContext || createReactContext; + + var isarray = Array.isArray || function (arr) { + return Object.prototype.toString.call(arr) == '[object Array]'; + }; + + /** + * Expose `pathToRegexp`. + */ + var pathToRegexp_1 = pathToRegexp; + var parse_1 = parse; + var compile_1 = compile; + var tokensToFunction_1 = tokensToFunction; + var tokensToRegExp_1 = tokensToRegExp; + + /** + * The main path matching regexp utility. + * + * @type {RegExp} + */ + var PATH_REGEXP = new RegExp([ + // Match escaped characters that would otherwise appear in future matches. + // This allows the user to escape special characters that won't transform. + '(\\\\.)', + // Match Express-style parameters and un-named parameters with a prefix + // and optional suffixes. Matches appear as: + // + // "/:test(\\d+)?" => ["/", "test", "\d+", undefined, "?", undefined] + // "/route(\\d+)" => [undefined, undefined, undefined, "\d+", undefined, undefined] + // "/*" => ["/", undefined, undefined, undefined, undefined, "*"] + '([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))' + ].join('|'), 'g'); + + /** + * Parse a string for the raw tokens. + * + * @param {string} str + * @param {Object=} options + * @return {!Array} + */ + function parse (str, options) { + var tokens = []; + var key = 0; + var index = 0; + var path = ''; + var defaultDelimiter = options && options.delimiter || '/'; + var res; + + while ((res = PATH_REGEXP.exec(str)) != null) { + var m = res[0]; + var escaped = res[1]; + var offset = res.index; + path += str.slice(index, offset); + index = offset + m.length; + + // Ignore already escaped sequences. + if (escaped) { + path += escaped[1]; + continue + } + + var next = str[index]; + var prefix = res[2]; + var name = res[3]; + var capture = res[4]; + var group = res[5]; + var modifier = res[6]; + var asterisk = res[7]; + + // Push the current path onto the tokens. + if (path) { + tokens.push(path); + path = ''; + } + + var partial = prefix != null && next != null && next !== prefix; + var repeat = modifier === '+' || modifier === '*'; + var optional = modifier === '?' || modifier === '*'; + var delimiter = res[2] || defaultDelimiter; + var pattern = capture || group; + + tokens.push({ + name: name || key++, + prefix: prefix || '', + delimiter: delimiter, + optional: optional, + repeat: repeat, + partial: partial, + asterisk: !!asterisk, + pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?') + }); + } + + // Match any characters still remaining. + if (index < str.length) { + path += str.substr(index); + } + + // If the path exists, push it onto the end. + if (path) { + tokens.push(path); + } + + return tokens + } + + /** + * Compile a string to a template function for the path. + * + * @param {string} str + * @param {Object=} options + * @return {!function(Object=, Object=)} + */ + function compile (str, options) { + return tokensToFunction(parse(str, options)) + } + + /** + * Prettier encoding of URI path segments. + * + * @param {string} + * @return {string} + */ + function encodeURIComponentPretty (str) { + return encodeURI(str).replace(/[\/?#]/g, function (c) { + return '%' + c.charCodeAt(0).toString(16).toUpperCase() + }) + } + + /** + * Encode the asterisk parameter. Similar to `pretty`, but allows slashes. + * + * @param {string} + * @return {string} + */ + function encodeAsterisk (str) { + return encodeURI(str).replace(/[?#]/g, function (c) { + return '%' + c.charCodeAt(0).toString(16).toUpperCase() + }) + } + + /** + * Expose a method for transforming tokens into the path function. + */ + function tokensToFunction (tokens) { + // Compile all the tokens into regexps. + var matches = new Array(tokens.length); + + // Compile all the patterns before compilation. + for (var i = 0; i < tokens.length; i++) { + if (typeof tokens[i] === 'object') { + matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$'); + } + } + + return function (obj, opts) { + var path = ''; + var data = obj || {}; + var options = opts || {}; + var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent; + + for (var i = 0; i < tokens.length; i++) { + var token = tokens[i]; + + if (typeof token === 'string') { + path += token; + + continue + } + + var value = data[token.name]; + var segment; + + if (value == null) { + if (token.optional) { + // Prepend partial segment prefixes. + if (token.partial) { + path += token.prefix; + } + + continue + } else { + throw new TypeError('Expected "' + token.name + '" to be defined') + } + } + + if (isarray(value)) { + if (!token.repeat) { + throw new TypeError('Expected "' + token.name + '" to not repeat, but received `' + JSON.stringify(value) + '`') + } + + if (value.length === 0) { + if (token.optional) { + continue + } else { + throw new TypeError('Expected "' + token.name + '" to not be empty') + } + } + + for (var j = 0; j < value.length; j++) { + segment = encode(value[j]); + + if (!matches[i].test(segment)) { + throw new TypeError('Expected all "' + token.name + '" to match "' + token.pattern + '", but received `' + JSON.stringify(segment) + '`') + } + + path += (j === 0 ? token.prefix : token.delimiter) + segment; + } + + continue + } + + segment = token.asterisk ? encodeAsterisk(value) : encode(value); + + if (!matches[i].test(segment)) { + throw new TypeError('Expected "' + token.name + '" to match "' + token.pattern + '", but received "' + segment + '"') + } + + path += token.prefix + segment; + } + + return path + } + } + + /** + * Escape a regular expression string. + * + * @param {string} str + * @return {string} + */ + function escapeString (str) { + return str.replace(/([.+*?=^!:${}()[\]|\/\\])/g, '\\$1') + } + + /** + * Escape the capturing group by escaping special characters and meaning. + * + * @param {string} group + * @return {string} + */ + function escapeGroup (group) { + return group.replace(/([=!:$\/()])/g, '\\$1') + } + + /** + * Attach the keys as a property of the regexp. + * + * @param {!RegExp} re + * @param {Array} keys + * @return {!RegExp} + */ + function attachKeys (re, keys) { + re.keys = keys; + return re + } + + /** + * Get the flags for a regexp from the options. + * + * @param {Object} options + * @return {string} + */ + function flags (options) { + return options.sensitive ? '' : 'i' + } + + /** + * Pull out keys from a regexp. + * + * @param {!RegExp} path + * @param {!Array} keys + * @return {!RegExp} + */ + function regexpToRegexp (path, keys) { + // Use a negative lookahead to match only capturing groups. + var groups = path.source.match(/\((?!\?)/g); + + if (groups) { + for (var i = 0; i < groups.length; i++) { + keys.push({ + name: i, + prefix: null, + delimiter: null, + optional: false, + repeat: false, + partial: false, + asterisk: false, + pattern: null + }); + } + } + + return attachKeys(path, keys) + } + + /** + * Transform an array into a regexp. + * + * @param {!Array} path + * @param {Array} keys + * @param {!Object} options + * @return {!RegExp} + */ + function arrayToRegexp (path, keys, options) { + var parts = []; + + for (var i = 0; i < path.length; i++) { + parts.push(pathToRegexp(path[i], keys, options).source); + } + + var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options)); + + return attachKeys(regexp, keys) + } + + /** + * Create a path regexp from string input. + * + * @param {string} path + * @param {!Array} keys + * @param {!Object} options + * @return {!RegExp} + */ + function stringToRegexp (path, keys, options) { + return tokensToRegExp(parse(path, options), keys, options) + } + + /** + * Expose a function for taking tokens and returning a RegExp. + * + * @param {!Array} tokens + * @param {(Array|Object)=} keys + * @param {Object=} options + * @return {!RegExp} + */ + function tokensToRegExp (tokens, keys, options) { + if (!isarray(keys)) { + options = /** @type {!Object} */ (keys || options); + keys = []; + } + + options = options || {}; + + var strict = options.strict; + var end = options.end !== false; + var route = ''; + + // Iterate over the tokens and create our regexp string. + for (var i = 0; i < tokens.length; i++) { + var token = tokens[i]; + + if (typeof token === 'string') { + route += escapeString(token); + } else { + var prefix = escapeString(token.prefix); + var capture = '(?:' + token.pattern + ')'; + + keys.push(token); + + if (token.repeat) { + capture += '(?:' + prefix + capture + ')*'; + } + + if (token.optional) { + if (!token.partial) { + capture = '(?:' + prefix + '(' + capture + '))?'; + } else { + capture = prefix + '(' + capture + ')?'; + } + } else { + capture = prefix + '(' + capture + ')'; + } + + route += capture; + } + } + + var delimiter = escapeString(options.delimiter || '/'); + var endsWithDelimiter = route.slice(-delimiter.length) === delimiter; + + // In non-strict mode we allow a slash at the end of match. If the path to + // match already ends with a slash, we remove it for consistency. The slash + // is valid at the end of a path match, not in the middle. This is important + // in non-ending mode, where "/test/" shouldn't match "/test//route". + if (!strict) { + route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'; + } + + if (end) { + route += '$'; + } else { + // In non-ending mode, we need the capturing groups to match as much as + // possible by using a positive lookahead to the end or next path segment. + route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'; + } + + return attachKeys(new RegExp('^' + route, flags(options)), keys) + } + + /** + * Normalize the given path string, returning a regular expression. + * + * An empty array can be passed in for the keys, which will hold the + * placeholder key descriptions. For example, using `/user/:id`, `keys` will + * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`. + * + * @param {(string|RegExp|Array)} path + * @param {(Array|Object)=} keys + * @param {Object=} options + * @return {!RegExp} + */ + function pathToRegexp (path, keys, options) { + if (!isarray(keys)) { + options = /** @type {!Object} */ (keys || options); + keys = []; + } + + options = options || {}; + + if (path instanceof RegExp) { + return regexpToRegexp(path, /** @type {!Array} */ (keys)) + } + + if (isarray(path)) { + return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options) + } + + return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options) + } + pathToRegexp_1.parse = parse_1; + pathToRegexp_1.compile = compile_1; + pathToRegexp_1.tokensToFunction = tokensToFunction_1; + pathToRegexp_1.tokensToRegExp = tokensToRegExp_1; + + function _objectWithoutPropertiesLoose(source, excluded) { + if (source == null) return {}; + var target = {}; + var sourceKeys = Object.keys(source); + var key, i; + + for (i = 0; i < sourceKeys.length; i++) { + key = sourceKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + target[key] = source[key]; + } + + return target; + } + + /** + * Copyright 2015, Yahoo! Inc. + * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. + */ + + var REACT_STATICS = { + childContextTypes: true, + contextType: true, + contextTypes: true, + defaultProps: true, + displayName: true, + getDefaultProps: true, + getDerivedStateFromError: true, + getDerivedStateFromProps: true, + mixins: true, + propTypes: true, + type: true + }; + + var KNOWN_STATICS = { + name: true, + length: true, + prototype: true, + caller: true, + callee: true, + arguments: true, + arity: true + }; + + var FORWARD_REF_STATICS = { + '$$typeof': true, + render: true, + defaultProps: true, + displayName: true, + propTypes: true + }; + + var MEMO_STATICS = { + '$$typeof': true, + compare: true, + defaultProps: true, + displayName: true, + propTypes: true, + type: true + }; + + var TYPE_STATICS = {}; + TYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS; + + function getStatics(component) { + if (reactIs.isMemo(component)) { + return MEMO_STATICS; + } + return TYPE_STATICS[component['$$typeof']] || REACT_STATICS; + } + + var defineProperty = Object.defineProperty; + var getOwnPropertyNames = Object.getOwnPropertyNames; + var getOwnPropertySymbols$1 = Object.getOwnPropertySymbols; + var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + var getPrototypeOf = Object.getPrototypeOf; + var objectPrototype = Object.prototype; + + function hoistNonReactStatics(targetComponent, sourceComponent, blacklist) { + if (typeof sourceComponent !== 'string') { + // don't hoist over string (html) components + + if (objectPrototype) { + var inheritedComponent = getPrototypeOf(sourceComponent); + if (inheritedComponent && inheritedComponent !== objectPrototype) { + hoistNonReactStatics(targetComponent, inheritedComponent, blacklist); + } + } + + var keys = getOwnPropertyNames(sourceComponent); + + if (getOwnPropertySymbols$1) { + keys = keys.concat(getOwnPropertySymbols$1(sourceComponent)); + } + + var targetStatics = getStatics(targetComponent); + var sourceStatics = getStatics(sourceComponent); + + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) { + var descriptor = getOwnPropertyDescriptor(sourceComponent, key); + try { + // Avoid failures from read-only properties + defineProperty(targetComponent, key, descriptor); + } catch (e) {} + } + } + + return targetComponent; + } + + return targetComponent; + } + + var hoistNonReactStatics_cjs = hoistNonReactStatics; + + var createNamedContext = function createNamedContext(name) { + var context = index(); + context.displayName = name; + return context; + }; + + var historyContext = + /*#__PURE__*/ + createNamedContext("Router-History"); // TODO: Replace with React.createContext once we can assume React 16+ + + var createNamedContext$1 = function createNamedContext(name) { + var context = index(); + context.displayName = name; + return context; + }; + + var context = + /*#__PURE__*/ + createNamedContext$1("Router"); + /** + * The public API for putting history on context. + */ + + var Router = + /*#__PURE__*/ + function (_React$Component) { + _inheritsLoose(Router, _React$Component); + + Router.computeRootMatch = function computeRootMatch(pathname) { + return { + path: "/", + url: "/", + params: {}, + isExact: pathname === "/" + }; + }; + + function Router(props) { + var _this; + + _this = _React$Component.call(this, props) || this; + _this.state = { + location: props.history.location + }; // This is a bit of a hack. We have to start listening for location + // changes here in the constructor in case there are any s + // on the initial render. If there are, they will replace/push when + // they mount and since cDM fires in children before parents, we may + // get a new location before the is mounted. + + _this._isMounted = false; + _this._pendingLocation = null; + + if (!props.staticContext) { + _this.unlisten = props.history.listen(function (location) { + if (_this._isMounted) { + _this.setState({ + location: location + }); + } else { + _this._pendingLocation = location; + } + }); + } + + return _this; + } + + var _proto = Router.prototype; + + _proto.componentDidMount = function componentDidMount() { + this._isMounted = true; + + if (this._pendingLocation) { + this.setState({ + location: this._pendingLocation + }); + } + }; + + _proto.componentWillUnmount = function componentWillUnmount() { + if (this.unlisten) this.unlisten(); + }; + + _proto.render = function render() { + return React__default.createElement(context.Provider, { + value: { + history: this.props.history, + location: this.state.location, + match: Router.computeRootMatch(this.state.location.pathname), + staticContext: this.props.staticContext + } + }, React__default.createElement(historyContext.Provider, { + children: this.props.children || null, + value: this.props.history + })); + }; + + return Router; + }(React__default.Component); + + { + Router.propTypes = { + children: propTypes.node, + history: propTypes.object.isRequired, + staticContext: propTypes.object + }; + + Router.prototype.componentDidUpdate = function (prevProps) { + warning(prevProps.history === this.props.history, "You cannot change ") ; + }; + } + /** + * The public API for a that stores location in memory. + */ + + + var MemoryRouter = + /*#__PURE__*/ + function (_React$Component) { + _inheritsLoose(MemoryRouter, _React$Component); + + function MemoryRouter() { + var _this; + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this; + _this.history = createMemoryHistory(_this.props); + return _this; + } + + var _proto = MemoryRouter.prototype; + + _proto.render = function render() { + return React__default.createElement(Router, { + history: this.history, + children: this.props.children + }); + }; + + return MemoryRouter; + }(React__default.Component); + + { + MemoryRouter.propTypes = { + initialEntries: propTypes.array, + initialIndex: propTypes.number, + getUserConfirmation: propTypes.func, + keyLength: propTypes.number, + children: propTypes.node + }; + + MemoryRouter.prototype.componentDidMount = function () { + warning(!this.props.history, " ignores the history prop. To use a custom history, " + "use `import { Router }` instead of `import { MemoryRouter as Router }`.") ; + }; + } + + var Lifecycle = + /*#__PURE__*/ + function (_React$Component) { + _inheritsLoose(Lifecycle, _React$Component); + + function Lifecycle() { + return _React$Component.apply(this, arguments) || this; + } + + var _proto = Lifecycle.prototype; + + _proto.componentDidMount = function componentDidMount() { + if (this.props.onMount) this.props.onMount.call(this, this); + }; + + _proto.componentDidUpdate = function componentDidUpdate(prevProps) { + if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps); + }; + + _proto.componentWillUnmount = function componentWillUnmount() { + if (this.props.onUnmount) this.props.onUnmount.call(this, this); + }; + + _proto.render = function render() { + return null; + }; + + return Lifecycle; + }(React__default.Component); + /** + * The public API for prompting the user before navigating away from a screen. + */ + + + function Prompt(_ref) { + var message = _ref.message, + _ref$when = _ref.when, + when = _ref$when === void 0 ? true : _ref$when; + return React__default.createElement(context.Consumer, null, function (context) { + !context ? invariant(false, "You should not use outside a ") : void 0; + if (!when || context.staticContext) return null; + var method = context.history.block; + return React__default.createElement(Lifecycle, { + onMount: function onMount(self) { + self.release = method(message); + }, + onUpdate: function onUpdate(self, prevProps) { + if (prevProps.message !== message) { + self.release(); + self.release = method(message); + } + }, + onUnmount: function onUnmount(self) { + self.release(); + }, + message: message + }); + }); + } + + { + var messageType = propTypes.oneOfType([propTypes.func, propTypes.string]); + Prompt.propTypes = { + when: propTypes.bool, + message: messageType.isRequired + }; + } + + var cache = {}; + var cacheLimit = 10000; + var cacheCount = 0; + + function compilePath(path) { + if (cache[path]) return cache[path]; + var generator = pathToRegexp_1.compile(path); + + if (cacheCount < cacheLimit) { + cache[path] = generator; + cacheCount++; + } + + return generator; + } + /** + * Public API for generating a URL pathname from a path and parameters. + */ + + + function generatePath(path, params) { + if (path === void 0) { + path = "/"; + } + + if (params === void 0) { + params = {}; + } + + return path === "/" ? path : compilePath(path)(params, { + pretty: true + }); + } + /** + * The public API for navigating programmatically with a component. + */ + + + function Redirect(_ref) { + var computedMatch = _ref.computedMatch, + to = _ref.to, + _ref$push = _ref.push, + push = _ref$push === void 0 ? false : _ref$push; + return React__default.createElement(context.Consumer, null, function (context) { + !context ? invariant(false, "You should not use outside a ") : void 0; + var history = context.history, + staticContext = context.staticContext; + var method = push ? history.push : history.replace; + var location = createLocation(computedMatch ? typeof to === "string" ? generatePath(to, computedMatch.params) : _extends({}, to, { + pathname: generatePath(to.pathname, computedMatch.params) + }) : to); // When rendering in a static context, + // set the new location immediately. + + if (staticContext) { + method(location); + return null; + } + + return React__default.createElement(Lifecycle, { + onMount: function onMount() { + method(location); + }, + onUpdate: function onUpdate(self, prevProps) { + var prevLocation = createLocation(prevProps.to); + + if (!locationsAreEqual(prevLocation, _extends({}, location, { + key: prevLocation.key + }))) { + method(location); + } + }, + to: to + }); + }); + } + + { + Redirect.propTypes = { + push: propTypes.bool, + from: propTypes.string, + to: propTypes.oneOfType([propTypes.string, propTypes.object]).isRequired + }; + } + + var cache$1 = {}; + var cacheLimit$1 = 10000; + var cacheCount$1 = 0; + + function compilePath$1(path, options) { + var cacheKey = "" + options.end + options.strict + options.sensitive; + var pathCache = cache$1[cacheKey] || (cache$1[cacheKey] = {}); + if (pathCache[path]) return pathCache[path]; + var keys = []; + var regexp = pathToRegexp_1(path, keys, options); + var result = { + regexp: regexp, + keys: keys + }; + + if (cacheCount$1 < cacheLimit$1) { + pathCache[path] = result; + cacheCount$1++; + } + + return result; + } + /** + * Public API for matching a URL pathname to a path. + */ + + + function matchPath(pathname, options) { + if (options === void 0) { + options = {}; + } + + if (typeof options === "string" || Array.isArray(options)) { + options = { + path: options + }; + } + + var _options = options, + path = _options.path, + _options$exact = _options.exact, + exact = _options$exact === void 0 ? false : _options$exact, + _options$strict = _options.strict, + strict = _options$strict === void 0 ? false : _options$strict, + _options$sensitive = _options.sensitive, + sensitive = _options$sensitive === void 0 ? false : _options$sensitive; + var paths = [].concat(path); + return paths.reduce(function (matched, path) { + if (!path && path !== "") return null; + if (matched) return matched; + + var _compilePath = compilePath$1(path, { + end: exact, + strict: strict, + sensitive: sensitive + }), + regexp = _compilePath.regexp, + keys = _compilePath.keys; + + var match = regexp.exec(pathname); + if (!match) return null; + var url = match[0], + values = match.slice(1); + var isExact = pathname === url; + if (exact && !isExact) return null; + return { + path: path, + // the path used to match + url: path === "/" && url === "" ? "/" : url, + // the matched portion of the URL + isExact: isExact, + // whether or not we matched exactly + params: keys.reduce(function (memo, key, index) { + memo[key.name] = values[index]; + return memo; + }, {}) + }; + }, null); + } + + function isEmptyChildren(children) { + return React__default.Children.count(children) === 0; + } + + function evalChildrenDev(children, props, path) { + var value = children(props); + warning(value !== undefined, "You returned `undefined` from the `children` function of " + (", but you ") + "should have returned a React element or `null`") ; + return value || null; + } + /** + * The public API for matching a single path and rendering. + */ + + + var Route = + /*#__PURE__*/ + function (_React$Component) { + _inheritsLoose(Route, _React$Component); + + function Route() { + return _React$Component.apply(this, arguments) || this; + } + + var _proto = Route.prototype; + + _proto.render = function render() { + var _this = this; + + return React__default.createElement(context.Consumer, null, function (context$1) { + !context$1 ? invariant(false, "You should not use outside a ") : void 0; + var location = _this.props.location || context$1.location; + var match = _this.props.computedMatch ? _this.props.computedMatch // already computed the match for us + : _this.props.path ? matchPath(location.pathname, _this.props) : context$1.match; + + var props = _extends({}, context$1, { + location: location, + match: match + }); + + var _this$props = _this.props, + children = _this$props.children, + component = _this$props.component, + render = _this$props.render; // Preact uses an empty array as children by + // default, so use null if that's the case. + + if (Array.isArray(children) && children.length === 0) { + children = null; + } + + return React__default.createElement(context.Provider, { + value: props + }, props.match ? children ? typeof children === "function" ? evalChildrenDev(children, props, _this.props.path) : children : component ? React__default.createElement(component, props) : render ? render(props) : null : typeof children === "function" ? evalChildrenDev(children, props, _this.props.path) : null); + }); + }; + + return Route; + }(React__default.Component); + + { + Route.propTypes = { + children: propTypes.oneOfType([propTypes.func, propTypes.node]), + component: function component(props, propName) { + if (props[propName] && !reactIs_1(props[propName])) { + return new Error("Invalid prop 'component' supplied to 'Route': the prop is not a valid React component"); + } + }, + exact: propTypes.bool, + location: propTypes.object, + path: propTypes.oneOfType([propTypes.string, propTypes.arrayOf(propTypes.string)]), + render: propTypes.func, + sensitive: propTypes.bool, + strict: propTypes.bool + }; + + Route.prototype.componentDidMount = function () { + warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.component), "You should not use and in the same route; will be ignored") ; + warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.render), "You should not use and in the same route; will be ignored") ; + warning(!(this.props.component && this.props.render), "You should not use and in the same route; will be ignored") ; + }; + + Route.prototype.componentDidUpdate = function (prevProps) { + warning(!(this.props.location && !prevProps.location), ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no "location" prop and then provided one on a subsequent render.') ; + warning(!(!this.props.location && prevProps.location), ' elements should not change from controlled to uncontrolled (or vice versa). You provided a "location" prop initially but omitted it on a subsequent render.') ; + }; + } + + function addLeadingSlash$1(path) { + return path.charAt(0) === "/" ? path : "/" + path; + } + + function addBasename(basename, location) { + if (!basename) return location; + return _extends({}, location, { + pathname: addLeadingSlash$1(basename) + location.pathname + }); + } + + function stripBasename$1(basename, location) { + if (!basename) return location; + var base = addLeadingSlash$1(basename); + if (location.pathname.indexOf(base) !== 0) return location; + return _extends({}, location, { + pathname: location.pathname.substr(base.length) + }); + } + + function createURL(location) { + return typeof location === "string" ? location : createPath(location); + } + + function staticHandler(methodName) { + return function () { + invariant(false, "You cannot %s with ") ; + }; + } + + function noop() {} + /** + * The public top-level API for a "static" , so-called because it + * can't actually change the current location. Instead, it just records + * location changes in a context object. Useful mainly in testing and + * server-rendering scenarios. + */ + + + var StaticRouter = + /*#__PURE__*/ + function (_React$Component) { + _inheritsLoose(StaticRouter, _React$Component); + + function StaticRouter() { + var _this; + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this; + + _this.handlePush = function (location) { + return _this.navigateTo(location, "PUSH"); + }; + + _this.handleReplace = function (location) { + return _this.navigateTo(location, "REPLACE"); + }; + + _this.handleListen = function () { + return noop; + }; + + _this.handleBlock = function () { + return noop; + }; + + return _this; + } + + var _proto = StaticRouter.prototype; + + _proto.navigateTo = function navigateTo(location, action) { + var _this$props = this.props, + _this$props$basename = _this$props.basename, + basename = _this$props$basename === void 0 ? "" : _this$props$basename, + _this$props$context = _this$props.context, + context = _this$props$context === void 0 ? {} : _this$props$context; + context.action = action; + context.location = addBasename(basename, createLocation(location)); + context.url = createURL(context.location); + }; + + _proto.render = function render() { + var _this$props2 = this.props, + _this$props2$basename = _this$props2.basename, + basename = _this$props2$basename === void 0 ? "" : _this$props2$basename, + _this$props2$context = _this$props2.context, + context = _this$props2$context === void 0 ? {} : _this$props2$context, + _this$props2$location = _this$props2.location, + location = _this$props2$location === void 0 ? "/" : _this$props2$location, + rest = _objectWithoutPropertiesLoose(_this$props2, ["basename", "context", "location"]); + + var history = { + createHref: function createHref(path) { + return addLeadingSlash$1(basename + createURL(path)); + }, + action: "POP", + location: stripBasename$1(basename, createLocation(location)), + push: this.handlePush, + replace: this.handleReplace, + go: staticHandler(), + goBack: staticHandler(), + goForward: staticHandler(), + listen: this.handleListen, + block: this.handleBlock + }; + return React__default.createElement(Router, _extends({}, rest, { + history: history, + staticContext: context + })); + }; + + return StaticRouter; + }(React__default.Component); + + { + StaticRouter.propTypes = { + basename: propTypes.string, + context: propTypes.object, + location: propTypes.oneOfType([propTypes.string, propTypes.object]) + }; + + StaticRouter.prototype.componentDidMount = function () { + warning(!this.props.history, " ignores the history prop. To use a custom history, " + "use `import { Router }` instead of `import { StaticRouter as Router }`.") ; + }; + } + /** + * The public API for rendering the first that matches. + */ + + + var Switch = + /*#__PURE__*/ + function (_React$Component) { + _inheritsLoose(Switch, _React$Component); + + function Switch() { + return _React$Component.apply(this, arguments) || this; + } + + var _proto = Switch.prototype; + + _proto.render = function render() { + var _this = this; + + return React__default.createElement(context.Consumer, null, function (context) { + !context ? invariant(false, "You should not use outside a ") : void 0; + var location = _this.props.location || context.location; + var element, match; // We use React.Children.forEach instead of React.Children.toArray().find() + // here because toArray adds keys to all child elements and we do not want + // to trigger an unmount/remount for two s that render the same + // component at different URLs. + + React__default.Children.forEach(_this.props.children, function (child) { + if (match == null && React__default.isValidElement(child)) { + element = child; + var path = child.props.path || child.props.from; + match = path ? matchPath(location.pathname, _extends({}, child.props, { + path: path + })) : context.match; + } + }); + return match ? React__default.cloneElement(element, { + location: location, + computedMatch: match + }) : null; + }); + }; + + return Switch; + }(React__default.Component); + + { + Switch.propTypes = { + children: propTypes.node, + location: propTypes.object + }; + + Switch.prototype.componentDidUpdate = function (prevProps) { + warning(!(this.props.location && !prevProps.location), ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no "location" prop and then provided one on a subsequent render.') ; + warning(!(!this.props.location && prevProps.location), ' elements should not change from controlled to uncontrolled (or vice versa). You provided a "location" prop initially but omitted it on a subsequent render.') ; + }; + } + /** + * A public higher-order component to access the imperative API + */ + + + function withRouter(Component) { + var displayName = "withRouter(" + (Component.displayName || Component.name) + ")"; + + var C = function C(props) { + var wrappedComponentRef = props.wrappedComponentRef, + remainingProps = _objectWithoutPropertiesLoose(props, ["wrappedComponentRef"]); + + return React__default.createElement(context.Consumer, null, function (context) { + !context ? invariant(false, "You should not use <" + displayName + " /> outside a ") : void 0; + return React__default.createElement(Component, _extends({}, remainingProps, context, { + ref: wrappedComponentRef + })); + }); + }; + + C.displayName = displayName; + C.WrappedComponent = Component; + + { + C.propTypes = { + wrappedComponentRef: propTypes.oneOfType([propTypes.string, propTypes.func, propTypes.object]) + }; + } + + return hoistNonReactStatics_cjs(C, Component); + } + + var useContext = React__default.useContext; + + function useHistory() { + { + !(typeof useContext === "function") ? invariant(false, "You must use React >= 16.8 in order to use useHistory()") : void 0; + } + + return useContext(historyContext); + } + + function useLocation() { + { + !(typeof useContext === "function") ? invariant(false, "You must use React >= 16.8 in order to use useLocation()") : void 0; + } + + return useContext(context).location; + } + + function useParams() { + { + !(typeof useContext === "function") ? invariant(false, "You must use React >= 16.8 in order to use useParams()") : void 0; + } + + var match = useContext(context).match; + return match ? match.params : {}; + } + + function useRouteMatch(path) { + { + !(typeof useContext === "function") ? invariant(false, "You must use React >= 16.8 in order to use useRouteMatch()") : void 0; + } + + var location = useLocation(); + var match = useContext(context).match; + return path ? matchPath(location.pathname, path) : match; + } + + { + if (typeof window !== "undefined") { + var global$1 = window; + var key = "__react_router_build__"; + var buildNames = { + cjs: "CommonJS", + esm: "ES modules", + umd: "UMD" + }; + + if (global$1[key] && global$1[key] !== "esm") { + var initialBuildName = buildNames[global$1[key]]; + var secondaryBuildName = buildNames["esm"]; // TODO: Add link to article that explains in detail how to avoid + // loading 2 different builds. + + throw new Error("You are loading the " + secondaryBuildName + " build of React Router " + ("on a page that is already running the " + initialBuildName + " ") + "build, so things won't work right."); + } + + global$1[key] = "esm"; + } + } + + /** + * The public API for a that uses HTML5 history. + */ + + var BrowserRouter = + /*#__PURE__*/ + function (_React$Component) { + _inheritsLoose(BrowserRouter, _React$Component); + + function BrowserRouter() { + var _this; + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this; + _this.history = createBrowserHistory(_this.props); + return _this; + } + + var _proto = BrowserRouter.prototype; + + _proto.render = function render() { + return React__default.createElement(Router, { + history: this.history, + children: this.props.children + }); + }; + + return BrowserRouter; + }(React__default.Component); + + { + BrowserRouter.propTypes = { + basename: propTypes.string, + children: propTypes.node, + forceRefresh: propTypes.bool, + getUserConfirmation: propTypes.func, + keyLength: propTypes.number + }; + + BrowserRouter.prototype.componentDidMount = function () { + warning(!this.props.history, " ignores the history prop. To use a custom history, " + "use `import { Router }` instead of `import { BrowserRouter as Router }`.") ; + }; + } + + /** + * The public API for a that uses window.location.hash. + */ + + var HashRouter = + /*#__PURE__*/ + function (_React$Component) { + _inheritsLoose(HashRouter, _React$Component); + + function HashRouter() { + var _this; + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this; + _this.history = createHashHistory(_this.props); + return _this; + } + + var _proto = HashRouter.prototype; + + _proto.render = function render() { + return React__default.createElement(Router, { + history: this.history, + children: this.props.children + }); + }; + + return HashRouter; + }(React__default.Component); + + { + HashRouter.propTypes = { + basename: propTypes.string, + children: propTypes.node, + getUserConfirmation: propTypes.func, + hashType: propTypes.oneOf(["hashbang", "noslash", "slash"]) + }; + + HashRouter.prototype.componentDidMount = function () { + warning(!this.props.history, " ignores the history prop. To use a custom history, " + "use `import { Router }` instead of `import { HashRouter as Router }`.") ; + }; + } + + var resolveToLocation = function resolveToLocation(to, currentLocation) { + return typeof to === "function" ? to(currentLocation) : to; + }; + var normalizeToLocation = function normalizeToLocation(to, currentLocation) { + return typeof to === "string" ? createLocation(to, null, null, currentLocation) : to; + }; + + var forwardRefShim = function forwardRefShim(C) { + return C; + }; + + var forwardRef = React__default.forwardRef; + + if (typeof forwardRef === "undefined") { + forwardRef = forwardRefShim; + } + + function isModifiedEvent(event) { + return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey); + } + + var LinkAnchor = forwardRef(function (_ref, forwardedRef) { + var innerRef = _ref.innerRef, + navigate = _ref.navigate, + _onClick = _ref.onClick, + rest = _objectWithoutPropertiesLoose(_ref, ["innerRef", "navigate", "onClick"]); + + var target = rest.target; + + var props = _extends({}, rest, { + onClick: function onClick(event) { + try { + if (_onClick) _onClick(event); + } catch (ex) { + event.preventDefault(); + throw ex; + } + + if (!event.defaultPrevented && // onClick prevented default + event.button === 0 && ( // ignore everything but left clicks + !target || target === "_self") && // let browser handle "target=_blank" etc. + !isModifiedEvent(event) // ignore clicks with modifier keys + ) { + event.preventDefault(); + navigate(); + } + } + }); // React 15 compat + + + if (forwardRefShim !== forwardRef) { + props.ref = forwardedRef || innerRef; + } else { + props.ref = innerRef; + } + /* eslint-disable-next-line jsx-a11y/anchor-has-content */ + + + return React__default.createElement("a", props); + }); + + { + LinkAnchor.displayName = "LinkAnchor"; + } + /** + * The public API for rendering a history-aware . + */ + + + var Link = forwardRef(function (_ref2, forwardedRef) { + var _ref2$component = _ref2.component, + component = _ref2$component === void 0 ? LinkAnchor : _ref2$component, + replace = _ref2.replace, + to = _ref2.to, + innerRef = _ref2.innerRef, + rest = _objectWithoutPropertiesLoose(_ref2, ["component", "replace", "to", "innerRef"]); + + return React__default.createElement(context.Consumer, null, function (context) { + !context ? invariant(false, "You should not use outside a ") : void 0; + var history = context.history; + var location = normalizeToLocation(resolveToLocation(to, context.location), context.location); + var href = location ? history.createHref(location) : ""; + + var props = _extends({}, rest, { + href: href, + navigate: function navigate() { + var location = resolveToLocation(to, context.location); + var method = replace ? history.replace : history.push; + method(location); + } + }); // React 15 compat + + + if (forwardRefShim !== forwardRef) { + props.ref = forwardedRef || innerRef; + } else { + props.innerRef = innerRef; + } + + return React__default.createElement(component, props); + }); + }); + + { + var toType = propTypes.oneOfType([propTypes.string, propTypes.object, propTypes.func]); + var refType = propTypes.oneOfType([propTypes.string, propTypes.func, propTypes.shape({ + current: propTypes.any + })]); + Link.displayName = "Link"; + Link.propTypes = { + innerRef: refType, + onClick: propTypes.func, + replace: propTypes.bool, + target: propTypes.string, + to: toType.isRequired + }; + } + + var forwardRefShim$1 = function forwardRefShim(C) { + return C; + }; + + var forwardRef$1 = React__default.forwardRef; + + if (typeof forwardRef$1 === "undefined") { + forwardRef$1 = forwardRefShim$1; + } + + function joinClassnames() { + for (var _len = arguments.length, classnames = new Array(_len), _key = 0; _key < _len; _key++) { + classnames[_key] = arguments[_key]; + } + + return classnames.filter(function (i) { + return i; + }).join(" "); + } + /** + * A wrapper that knows if it's "active" or not. + */ + + + var NavLink = forwardRef$1(function (_ref, forwardedRef) { + var _ref$ariaCurrent = _ref["aria-current"], + ariaCurrent = _ref$ariaCurrent === void 0 ? "page" : _ref$ariaCurrent, + _ref$activeClassName = _ref.activeClassName, + activeClassName = _ref$activeClassName === void 0 ? "active" : _ref$activeClassName, + activeStyle = _ref.activeStyle, + classNameProp = _ref.className, + exact = _ref.exact, + isActiveProp = _ref.isActive, + locationProp = _ref.location, + sensitive = _ref.sensitive, + strict = _ref.strict, + styleProp = _ref.style, + to = _ref.to, + innerRef = _ref.innerRef, + rest = _objectWithoutPropertiesLoose(_ref, ["aria-current", "activeClassName", "activeStyle", "className", "exact", "isActive", "location", "sensitive", "strict", "style", "to", "innerRef"]); + + return React__default.createElement(context.Consumer, null, function (context) { + !context ? invariant(false, "You should not use outside a ") : void 0; + var currentLocation = locationProp || context.location; + var toLocation = normalizeToLocation(resolveToLocation(to, currentLocation), currentLocation); + var path = toLocation.pathname; // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202 + + var escapedPath = path && path.replace(/([.+*?=^!:${}()[\]|/\\])/g, "\\$1"); + var match = escapedPath ? matchPath(currentLocation.pathname, { + path: escapedPath, + exact: exact, + sensitive: sensitive, + strict: strict + }) : null; + var isActive = !!(isActiveProp ? isActiveProp(match, currentLocation) : match); + var className = isActive ? joinClassnames(classNameProp, activeClassName) : classNameProp; + var style = isActive ? _extends({}, styleProp, {}, activeStyle) : styleProp; + + var props = _extends({ + "aria-current": isActive && ariaCurrent || null, + className: className, + style: style, + to: toLocation + }, rest); // React 15 compat + + + if (forwardRefShim$1 !== forwardRef$1) { + props.ref = forwardedRef || innerRef; + } else { + props.innerRef = innerRef; + } + + return React__default.createElement(Link, props); + }); + }); + + { + NavLink.displayName = "NavLink"; + var ariaCurrentType = propTypes.oneOf(["page", "step", "location", "date", "time", "true"]); + NavLink.propTypes = _extends({}, Link.propTypes, { + "aria-current": ariaCurrentType, + activeClassName: propTypes.string, + activeStyle: propTypes.object, + className: propTypes.string, + exact: propTypes.bool, + isActive: propTypes.func, + location: propTypes.object, + sensitive: propTypes.bool, + strict: propTypes.bool, + style: propTypes.object + }); + } + + exports.BrowserRouter = BrowserRouter; + exports.HashRouter = HashRouter; + exports.Link = Link; + exports.MemoryRouter = MemoryRouter; + exports.NavLink = NavLink; + exports.Prompt = Prompt; + exports.Redirect = Redirect; + exports.Route = Route; + exports.Router = Router; + exports.StaticRouter = StaticRouter; + exports.Switch = Switch; + exports.generatePath = generatePath; + exports.matchPath = matchPath; + exports.useHistory = useHistory; + exports.useLocation = useLocation; + exports.useParams = useParams; + exports.useRouteMatch = useRouteMatch; + exports.withRouter = withRouter; + + Object.defineProperty(exports, '__esModule', { value: true }); + +})); +//# sourceMappingURL=react-router-dom.js.map diff --git a/node_modules/react-router-dom/umd/react-router-dom.js.map b/node_modules/react-router-dom/umd/react-router-dom.js.map new file mode 100644 index 0000000..7bdf7ad --- /dev/null +++ b/node_modules/react-router-dom/umd/react-router-dom.js.map @@ -0,0 +1 @@ +{"version":3,"file":"react-router-dom.js","sources":["../../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../../node_modules/react-is/cjs/react-is.production.min.js","../../node_modules/react-is/cjs/react-is.development.js","../../node_modules/react-is/index.js","../../node_modules/object-assign/index.js","../../node_modules/prop-types/lib/ReactPropTypesSecret.js","../../node_modules/prop-types/checkPropTypes.js","../../node_modules/prop-types/factoryWithTypeCheckers.js","../../node_modules/prop-types/index.js","../../node_modules/@babel/runtime/helpers/esm/extends.js","../../node_modules/resolve-pathname/index.js","../../node_modules/value-equal/index.js","../../node_modules/tiny-warning/dist/tiny-warning.esm.js","../../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","../../node_modules/history/esm/history.js","../../node_modules/mini-create-react-context/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../../node_modules/mini-create-react-context/dist/esm/index.js","../../node_modules/path-to-regexp/node_modules/isarray/index.js","../../node_modules/path-to-regexp/index.js","../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../../react-router/esm/react-router.js","../modules/BrowserRouter.js","../modules/HashRouter.js","../modules/utils/locationUtils.js","../modules/Link.js","../modules/NavLink.js"],"sourcesContent":["export default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","/** @license React v16.9.0\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';Object.defineProperty(exports,\"__esModule\",{value:!0});\nvar b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?Symbol.for(\"react.suspense_list\"):\n60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.fundamental\"):60117,w=b?Symbol.for(\"react.responder\"):60118;function x(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case h:return a;default:return u}}case t:case r:case d:return u}}}function y(a){return x(a)===m}exports.typeOf=x;exports.AsyncMode=l;\nexports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===v||a.$$typeof===w)};exports.isAsyncMode=function(a){return y(a)||x(a)===l};exports.isConcurrentMode=y;exports.isContextConsumer=function(a){return x(a)===k};exports.isContextProvider=function(a){return x(a)===h};\nexports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return x(a)===n};exports.isFragment=function(a){return x(a)===e};exports.isLazy=function(a){return x(a)===t};exports.isMemo=function(a){return x(a)===r};exports.isPortal=function(a){return x(a)===d};exports.isProfiler=function(a){return x(a)===g};exports.isStrictMode=function(a){return x(a)===f};exports.isSuspense=function(a){return x(a)===p};\n","/** @license React v16.9.0\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\n\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace;\n// TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' ||\n // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE);\n}\n\n/**\n * Forked from fbjs/warning:\n * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js\n *\n * Only change is we use console.warn instead of console.error,\n * and do nothing when 'console' is not supported.\n * This really simplifies the code.\n * ---\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar lowPriorityWarning = function () {};\n\n{\n var printWarning = function (format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.warn(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n lowPriorityWarning = function (condition, format) {\n if (format === undefined) {\n throw new Error('`lowPriorityWarning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nvar lowPriorityWarning$1 = lowPriorityWarning;\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n default:\n return $$typeof;\n }\n }\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n}\n\n// AsyncMode is deprecated along with isAsyncMode\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\n\nvar hasWarnedAboutDeprecatedIsAsyncMode = false;\n\n// AsyncMode should be deprecated\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true;\n lowPriorityWarning$1(false, 'The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.typeOf = typeOf;\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isValidElementType = isValidElementType;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar has = Function.call.bind(Object.prototype.hasOwnProperty);\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to) {\n var from = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n var toParts = to && to.split('/') || [];\n var fromParts = from && from.split('/') || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash = void 0;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) {\n fromParts.unshift('..');\n }if (mustEndAbs && fromParts[0] !== '' && (!fromParts[0] || !isAbsolute(fromParts[0]))) fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction valueEqual(a, b) {\n if (a === b) return true;\n\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n return Array.isArray(b) && a.length === b.length && a.every(function (item, index) {\n return valueEqual(item, b[index]);\n });\n }\n\n var aType = typeof a === 'undefined' ? 'undefined' : _typeof(a);\n var bType = typeof b === 'undefined' ? 'undefined' : _typeof(b);\n\n if (aType !== bType) return false;\n\n if (aType === 'object') {\n var aValue = a.valueOf();\n var bValue = b.valueOf();\n\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n var aKeys = Object.keys(a);\n var bKeys = Object.keys(b);\n\n if (aKeys.length !== bKeys.length) return false;\n\n return aKeys.every(function (key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n\nexport default valueEqual;","var isProduction = process.env.NODE_ENV === 'production';\nfunction warning(condition, message) {\n if (!isProduction) {\n if (condition) {\n return;\n }\n\n var text = \"Warning: \" + message;\n\n if (typeof console !== 'undefined') {\n console.warn(text);\n }\n\n try {\n throw Error(text);\n } catch (x) {}\n }\n}\n\nexport default warning;\n","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n\n if (isProduction) {\n throw new Error(prefix);\n } else {\n throw new Error(prefix + \": \" + (message || ''));\n }\n}\n\nexport default invariant;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return new RegExp('^' + prefix + '(\\\\/|\\\\?|#|$)', 'i').test(path);\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n var hashIndex = window.location.href.indexOf('#');\n window.location.replace(window.location.href.slice(0, hashIndex >= 0 ? hashIndex : 0) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n return '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","export default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","import React, { Component } from 'react';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport warning from 'tiny-warning';\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {};\n\nfunction getUniqueId() {\n var key = '__global_unique_id__';\n return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1;\n}\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + getUniqueId() + '__';\n\n var Provider = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Provider, _Component);\n\n function Provider() {\n var _this;\n\n _this = _Component.apply(this, arguments) || this;\n _this.emitter = createEventEmitter(_this.props.value);\n return _this;\n }\n\n var _proto = Provider.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0;\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (process.env.NODE_ENV !== 'production') {\n warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: ' + changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes.object.isRequired, _Provider$childContex);\n\n var Consumer = /*#__PURE__*/function (_Component2) {\n _inheritsLoose(Consumer, _Component2);\n\n function Consumer() {\n var _this2;\n\n _this2 = _Component2.apply(this, arguments) || this;\n _this2.state = {\n value: _this2.getValue()\n };\n\n _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n };\n\n return _this2;\n }\n\n var _proto2 = Consumer.prototype;\n\n _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n _proto2.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n _proto2.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = PropTypes.object, _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nvar index = React.createContext || createReactContext;\n\nexport default index;\n","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = res[2] || defaultDelimiter\n var pattern = capture || group\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options))\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$')\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","'use strict';\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar ReactIs = require('react-is');\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\n\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\n\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\n\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\n\nvar TYPE_STATICS = {};\nTYPE_STATICS[ReactIs.ForwardRef] = FORWARD_REF_STATICS;\n\nfunction getStatics(component) {\n if (ReactIs.isMemo(component)) {\n return MEMO_STATICS;\n }\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\n\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n\n return targetComponent;\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","import _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { createMemoryHistory, createLocation, locationsAreEqual, createPath } from 'history';\nimport warning from 'tiny-warning';\nimport createContext from 'mini-create-react-context';\nimport invariant from 'tiny-invariant';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport pathToRegexp from 'path-to-regexp';\nimport { isValidElementType } from 'react-is';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport hoistStatics from 'hoist-non-react-statics';\n\n// TODO: Replace with React.createContext once we can assume React 16+\n\nvar createNamedContext = function createNamedContext(name) {\n var context = createContext();\n context.displayName = name;\n return context;\n};\n\nvar historyContext =\n/*#__PURE__*/\ncreateNamedContext(\"Router-History\");\n\n// TODO: Replace with React.createContext once we can assume React 16+\n\nvar createNamedContext$1 = function createNamedContext(name) {\n var context = createContext();\n context.displayName = name;\n return context;\n};\n\nvar context =\n/*#__PURE__*/\ncreateNamedContext$1(\"Router\");\n\n/**\n * The public API for putting history on context.\n */\n\nvar Router =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Router, _React$Component);\n\n Router.computeRootMatch = function computeRootMatch(pathname) {\n return {\n path: \"/\",\n url: \"/\",\n params: {},\n isExact: pathname === \"/\"\n };\n };\n\n function Router(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.state = {\n location: props.history.location\n }; // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n\n _this._isMounted = false;\n _this._pendingLocation = null;\n\n if (!props.staticContext) {\n _this.unlisten = props.history.listen(function (location) {\n if (_this._isMounted) {\n _this.setState({\n location: location\n });\n } else {\n _this._pendingLocation = location;\n }\n });\n }\n\n return _this;\n }\n\n var _proto = Router.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({\n location: this._pendingLocation\n });\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.unlisten) this.unlisten();\n };\n\n _proto.render = function render() {\n return React.createElement(context.Provider, {\n value: {\n history: this.props.history,\n location: this.state.location,\n match: Router.computeRootMatch(this.state.location.pathname),\n staticContext: this.props.staticContext\n }\n }, React.createElement(historyContext.Provider, {\n children: this.props.children || null,\n value: this.props.history\n }));\n };\n\n return Router;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function (prevProps) {\n process.env.NODE_ENV !== \"production\" ? warning(prevProps.history === this.props.history, \"You cannot change \") : void 0;\n };\n}\n\n/**\n * The public API for a that stores location in memory.\n */\n\nvar MemoryRouter =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(MemoryRouter, _React$Component);\n\n function MemoryRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.history = createMemoryHistory(_this.props);\n return _this;\n }\n\n var _proto = MemoryRouter.prototype;\n\n _proto.render = function render() {\n return React.createElement(Router, {\n history: this.history,\n children: this.props.children\n });\n };\n\n return MemoryRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \" ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\") : void 0;\n };\n}\n\nvar Lifecycle =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Lifecycle, _React$Component);\n\n function Lifecycle() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Lifecycle.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n };\n\n _proto.render = function render() {\n return null;\n };\n\n return Lifecycle;\n}(React.Component);\n\n/**\n * The public API for prompting the user before navigating away from a screen.\n */\n\nfunction Prompt(_ref) {\n var message = _ref.message,\n _ref$when = _ref.when,\n when = _ref$when === void 0 ? true : _ref$when;\n return React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n if (!when || context.staticContext) return null;\n var method = context.history.block;\n return React.createElement(Lifecycle, {\n onMount: function onMount(self) {\n self.release = method(message);\n },\n onUpdate: function onUpdate(self, prevProps) {\n if (prevProps.message !== message) {\n self.release();\n self.release = method(message);\n }\n },\n onUnmount: function onUnmount(self) {\n self.release();\n },\n message: message\n });\n });\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n var messageType = PropTypes.oneOfType([PropTypes.func, PropTypes.string]);\n Prompt.propTypes = {\n when: PropTypes.bool,\n message: messageType.isRequired\n };\n}\n\nvar cache = {};\nvar cacheLimit = 10000;\nvar cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n var generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\n\n\nfunction generatePath(path, params) {\n if (path === void 0) {\n path = \"/\";\n }\n\n if (params === void 0) {\n params = {};\n }\n\n return path === \"/\" ? path : compilePath(path)(params, {\n pretty: true\n });\n}\n\n/**\n * The public API for navigating programmatically with a component.\n */\n\nfunction Redirect(_ref) {\n var computedMatch = _ref.computedMatch,\n to = _ref.to,\n _ref$push = _ref.push,\n push = _ref$push === void 0 ? false : _ref$push;\n return React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var history = context.history,\n staticContext = context.staticContext;\n var method = push ? history.push : history.replace;\n var location = createLocation(computedMatch ? typeof to === \"string\" ? generatePath(to, computedMatch.params) : _extends({}, to, {\n pathname: generatePath(to.pathname, computedMatch.params)\n }) : to); // When rendering in a static context,\n // set the new location immediately.\n\n if (staticContext) {\n method(location);\n return null;\n }\n\n return React.createElement(Lifecycle, {\n onMount: function onMount() {\n method(location);\n },\n onUpdate: function onUpdate(self, prevProps) {\n var prevLocation = createLocation(prevProps.to);\n\n if (!locationsAreEqual(prevLocation, _extends({}, location, {\n key: prevLocation.key\n }))) {\n method(location);\n }\n },\n to: to\n });\n });\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nvar cache$1 = {};\nvar cacheLimit$1 = 10000;\nvar cacheCount$1 = 0;\n\nfunction compilePath$1(path, options) {\n var cacheKey = \"\" + options.end + options.strict + options.sensitive;\n var pathCache = cache$1[cacheKey] || (cache$1[cacheKey] = {});\n if (pathCache[path]) return pathCache[path];\n var keys = [];\n var regexp = pathToRegexp(path, keys, options);\n var result = {\n regexp: regexp,\n keys: keys\n };\n\n if (cacheCount$1 < cacheLimit$1) {\n pathCache[path] = result;\n cacheCount$1++;\n }\n\n return result;\n}\n/**\n * Public API for matching a URL pathname to a path.\n */\n\n\nfunction matchPath(pathname, options) {\n if (options === void 0) {\n options = {};\n }\n\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = {\n path: options\n };\n }\n\n var _options = options,\n path = _options.path,\n _options$exact = _options.exact,\n exact = _options$exact === void 0 ? false : _options$exact,\n _options$strict = _options.strict,\n strict = _options$strict === void 0 ? false : _options$strict,\n _options$sensitive = _options.sensitive,\n sensitive = _options$sensitive === void 0 ? false : _options$sensitive;\n var paths = [].concat(path);\n return paths.reduce(function (matched, path) {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n var _compilePath = compilePath$1(path, {\n end: exact,\n strict: strict,\n sensitive: sensitive\n }),\n regexp = _compilePath.regexp,\n keys = _compilePath.keys;\n\n var match = regexp.exec(pathname);\n if (!match) return null;\n var url = match[0],\n values = match.slice(1);\n var isExact = pathname === url;\n if (exact && !isExact) return null;\n return {\n path: path,\n // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url,\n // the matched portion of the URL\n isExact: isExact,\n // whether or not we matched exactly\n params: keys.reduce(function (memo, key, index) {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n var value = children(props);\n process.env.NODE_ENV !== \"production\" ? warning(value !== undefined, \"You returned `undefined` from the `children` function of \" + (\", but you \") + \"should have returned a React element or `null`\") : void 0;\n return value || null;\n}\n/**\n * The public API for matching a single path and rendering.\n */\n\n\nvar Route =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Route, _React$Component);\n\n function Route() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Route.prototype;\n\n _proto.render = function render() {\n var _this = this;\n\n return React.createElement(context.Consumer, null, function (context$1) {\n !context$1 ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var location = _this.props.location || context$1.location;\n var match = _this.props.computedMatch ? _this.props.computedMatch // already computed the match for us\n : _this.props.path ? matchPath(location.pathname, _this.props) : context$1.match;\n\n var props = _extends({}, context$1, {\n location: location,\n match: match\n });\n\n var _this$props = _this.props,\n children = _this$props.children,\n component = _this$props.component,\n render = _this$props.render; // Preact uses an empty array as children by\n // default, so use null if that's the case.\n\n if (Array.isArray(children) && children.length === 0) {\n children = null;\n }\n\n return React.createElement(context.Provider, {\n value: props\n }, props.match ? children ? typeof children === \"function\" ? process.env.NODE_ENV !== \"production\" ? evalChildrenDev(children, props, _this.props.path) : children(props) : children : component ? React.createElement(component, props) : render ? render(props) : null : typeof children === \"function\" ? process.env.NODE_ENV !== \"production\" ? evalChildrenDev(children, props, _this.props.path) : children(props) : null);\n });\n };\n\n return Route;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: function component(props, propName) {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\"Invalid prop 'component' supplied to 'Route': the prop is not a valid React component\");\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.component), \"You should not use and in the same route; will be ignored\") : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.render), \"You should not use and in the same route; will be ignored\") : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.component && this.props.render), \"You should not use and in the same route; will be ignored\") : void 0;\n };\n\n Route.prototype.componentDidUpdate = function (prevProps) {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.location && !prevProps.location), ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(!this.props.location && prevProps.location), ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.') : void 0;\n };\n}\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n return _extends({}, location, {\n pathname: addLeadingSlash(basename) + location.pathname\n });\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n var base = addLeadingSlash(basename);\n if (location.pathname.indexOf(base) !== 0) return location;\n return _extends({}, location, {\n pathname: location.pathname.substr(base.length)\n });\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return function () {\n process.env.NODE_ENV !== \"production\" ? invariant(false, \"You cannot %s with \", methodName) : invariant(false) ;\n };\n}\n\nfunction noop() {}\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\n\n\nvar StaticRouter =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(StaticRouter, _React$Component);\n\n function StaticRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _this.handlePush = function (location) {\n return _this.navigateTo(location, \"PUSH\");\n };\n\n _this.handleReplace = function (location) {\n return _this.navigateTo(location, \"REPLACE\");\n };\n\n _this.handleListen = function () {\n return noop;\n };\n\n _this.handleBlock = function () {\n return noop;\n };\n\n return _this;\n }\n\n var _proto = StaticRouter.prototype;\n\n _proto.navigateTo = function navigateTo(location, action) {\n var _this$props = this.props,\n _this$props$basename = _this$props.basename,\n basename = _this$props$basename === void 0 ? \"\" : _this$props$basename,\n _this$props$context = _this$props.context,\n context = _this$props$context === void 0 ? {} : _this$props$context;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n };\n\n _proto.render = function render() {\n var _this$props2 = this.props,\n _this$props2$basename = _this$props2.basename,\n basename = _this$props2$basename === void 0 ? \"\" : _this$props2$basename,\n _this$props2$context = _this$props2.context,\n context = _this$props2$context === void 0 ? {} : _this$props2$context,\n _this$props2$location = _this$props2.location,\n location = _this$props2$location === void 0 ? \"/\" : _this$props2$location,\n rest = _objectWithoutPropertiesLoose(_this$props2, [\"basename\", \"context\", \"location\"]);\n\n var history = {\n createHref: function createHref(path) {\n return addLeadingSlash(basename + createURL(path));\n },\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n return React.createElement(Router, _extends({}, rest, {\n history: history,\n staticContext: context\n }));\n };\n\n return StaticRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \" ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { StaticRouter as Router }`.\") : void 0;\n };\n}\n\n/**\n * The public API for rendering the first that matches.\n */\n\nvar Switch =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Switch, _React$Component);\n\n function Switch() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Switch.prototype;\n\n _proto.render = function render() {\n var _this = this;\n\n return React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var location = _this.props.location || context.location;\n var element, match; // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n\n React.Children.forEach(_this.props.children, function (child) {\n if (match == null && React.isValidElement(child)) {\n element = child;\n var path = child.props.path || child.props.from;\n match = path ? matchPath(location.pathname, _extends({}, child.props, {\n path: path\n })) : context.match;\n }\n });\n return match ? React.cloneElement(element, {\n location: location,\n computedMatch: match\n }) : null;\n });\n };\n\n return Switch;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function (prevProps) {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.location && !prevProps.location), ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(!this.props.location && prevProps.location), ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.') : void 0;\n };\n}\n\n/**\n * A public higher-order component to access the imperative API\n */\n\nfunction withRouter(Component) {\n var displayName = \"withRouter(\" + (Component.displayName || Component.name) + \")\";\n\n var C = function C(props) {\n var wrappedComponentRef = props.wrappedComponentRef,\n remainingProps = _objectWithoutPropertiesLoose(props, [\"wrappedComponentRef\"]);\n\n return React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use <\" + displayName + \" /> outside a \") : invariant(false) : void 0;\n return React.createElement(Component, _extends({}, remainingProps, context, {\n ref: wrappedComponentRef\n }));\n });\n };\n\n C.displayName = displayName;\n C.WrappedComponent = Component;\n\n if (process.env.NODE_ENV !== \"production\") {\n C.propTypes = {\n wrappedComponentRef: PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.object])\n };\n }\n\n return hoistStatics(C, Component);\n}\n\nvar useContext = React.useContext;\nfunction useHistory() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useHistory()\") : invariant(false) : void 0;\n }\n\n return useContext(historyContext);\n}\nfunction useLocation() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useLocation()\") : invariant(false) : void 0;\n }\n\n return useContext(context).location;\n}\nfunction useParams() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useParams()\") : invariant(false) : void 0;\n }\n\n var match = useContext(context).match;\n return match ? match.params : {};\n}\nfunction useRouteMatch(path) {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useRouteMatch()\") : invariant(false) : void 0;\n }\n\n var location = useLocation();\n var match = useContext(context).match;\n return path ? matchPath(location.pathname, path) : match;\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n if (typeof window !== \"undefined\") {\n var global = window;\n var key = \"__react_router_build__\";\n var buildNames = {\n cjs: \"CommonJS\",\n esm: \"ES modules\",\n umd: \"UMD\"\n };\n\n if (global[key] && global[key] !== \"esm\") {\n var initialBuildName = buildNames[global[key]];\n var secondaryBuildName = buildNames[\"esm\"]; // TODO: Add link to article that explains in detail how to avoid\n // loading 2 different builds.\n\n throw new Error(\"You are loading the \" + secondaryBuildName + \" build of React Router \" + (\"on a page that is already running the \" + initialBuildName + \" \") + \"build, so things won't work right.\");\n }\n\n global[key] = \"esm\";\n }\n}\n\nexport { MemoryRouter, Prompt, Redirect, Route, Router, StaticRouter, Switch, historyContext as __HistoryContext, context as __RouterContext, generatePath, matchPath, useHistory, useLocation, useParams, useRouteMatch, withRouter };\n//# sourceMappingURL=react-router.js.map\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n );\n };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n return ;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const method = replace ? history.replace : history.push;\n\n method(location);\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link.js\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\",\n activeStyle,\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n sensitive,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n sensitive,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n const className = isActive\n ? joinClassnames(classNameProp, activeClassName)\n : classNameProp;\n const style = isActive ? { ...styleProp, ...activeStyle } : styleProp;\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return ;\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.string,\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.object\n };\n}\n\nexport default NavLink;\n"],"names":["require$$1","ReactPropTypesSecret","require$$0","has","printWarning","ReactIs","assign","checkPropTypes","_inheritsLoose","Component","PropTypes","React","getOwnPropertySymbols","createNamedContext","context","createContext","BrowserRouter","history","createHistory","props","render","children","propTypes","basename","string","node","forceRefresh","bool","getUserConfirmation","func","keyLength","number","prototype","componentDidMount","warning","HashRouter","hashType","oneOf","resolveToLocation","to","currentLocation","normalizeToLocation","createLocation","forwardRefShim","C","forwardRef","isModifiedEvent","event","metaKey","altKey","ctrlKey","shiftKey","LinkAnchor","forwardedRef","innerRef","navigate","onClick","rest","target","ex","preventDefault","defaultPrevented","button","ref","displayName","Link","component","replace","RouterContext","invariant","location","href","createHref","method","push","createElement","toType","oneOfType","object","refType","shape","current","any","isRequired","joinClassnames","classnames","filter","i","join","NavLink","ariaCurrent","activeClassName","activeStyle","classNameProp","className","exact","isActiveProp","isActive","locationProp","sensitive","strict","styleProp","style","toLocation","path","pathname","escapedPath","match","matchPath","ariaCurrentType"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/react-router-dom/umd/react-router-dom.min.js b/node_modules/react-router-dom/umd/react-router-dom.min.js new file mode 100644 index 0000000..aa995db --- /dev/null +++ b/node_modules/react-router-dom/umd/react-router-dom.min.js @@ -0,0 +1,2 @@ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("react")):"function"==typeof define&&define.amd?define(["exports","react"],e):e((t=t||self).ReactRouterDOM={},t.React)}(this,function(t,c){"use strict";var C="default"in c?c.default:c;function r(t,e){t.prototype=Object.create(e.prototype),(t.prototype.constructor=t).__proto__=e}function e(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function n(t,e){return t(e={exports:{}},e.exports),e.exports}var o=n(function(t,e){Object.defineProperty(e,"__esModule",{value:!0});var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,o=n?Symbol.for("react.portal"):60106,i=n?Symbol.for("react.fragment"):60107,a=n?Symbol.for("react.strict_mode"):60108,c=n?Symbol.for("react.profiler"):60114,u=n?Symbol.for("react.provider"):60109,s=n?Symbol.for("react.context"):60110,f=n?Symbol.for("react.async_mode"):60111,l=n?Symbol.for("react.concurrent_mode"):60111,p=n?Symbol.for("react.forward_ref"):60112,h=n?Symbol.for("react.suspense"):60113,d=n?Symbol.for("react.suspense_list"):60120,v=n?Symbol.for("react.memo"):60115,y=n?Symbol.for("react.lazy"):60116,m=n?Symbol.for("react.fundamental"):60117,g=n?Symbol.for("react.responder"):60118;function w(t){if("object"==typeof t&&null!==t){var e=t.$$typeof;switch(e){case r:switch(t=t.type){case f:case l:case i:case c:case a:case h:return t;default:switch(t=t&&t.$$typeof){case s:case p:case u:return t;default:return e}}case y:case v:case o:return e}}}function b(t){return w(t)===l}e.typeOf=w,e.AsyncMode=f,e.ConcurrentMode=l,e.ContextConsumer=s,e.ContextProvider=u,e.Element=r,e.ForwardRef=p,e.Fragment=i,e.Lazy=y,e.Memo=v,e.Portal=o,e.Profiler=c,e.StrictMode=a,e.Suspense=h,e.isValidElementType=function(t){return"string"==typeof t||"function"==typeof t||t===i||t===l||t===c||t===a||t===h||t===d||"object"==typeof t&&null!==t&&(t.$$typeof===y||t.$$typeof===v||t.$$typeof===u||t.$$typeof===s||t.$$typeof===p||t.$$typeof===m||t.$$typeof===g)},e.isAsyncMode=function(t){return b(t)||w(t)===f},e.isConcurrentMode=b,e.isContextConsumer=function(t){return w(t)===s},e.isContextProvider=function(t){return w(t)===u},e.isElement=function(t){return"object"==typeof t&&null!==t&&t.$$typeof===r},e.isForwardRef=function(t){return w(t)===p},e.isFragment=function(t){return w(t)===i},e.isLazy=function(t){return w(t)===y},e.isMemo=function(t){return w(t)===v},e.isPortal=function(t){return w(t)===o},e.isProfiler=function(t){return w(t)===c},e.isStrictMode=function(t){return w(t)===a},e.isSuspense=function(t){return w(t)===h}});e(o);o.typeOf,o.AsyncMode,o.ConcurrentMode,o.ContextConsumer,o.ContextProvider,o.Element,o.ForwardRef,o.Fragment,o.Lazy,o.Memo,o.Portal,o.Profiler,o.StrictMode,o.Suspense,o.isValidElementType,o.isAsyncMode,o.isConcurrentMode,o.isContextConsumer,o.isContextProvider,o.isElement,o.isForwardRef,o.isFragment,o.isLazy,o.isMemo,o.isPortal,o.isProfiler,o.isStrictMode,o.isSuspense;var i=n(function(t,e){});e(i);i.typeOf,i.AsyncMode,i.ConcurrentMode,i.ContextConsumer,i.ContextProvider,i.Element,i.ForwardRef,i.Fragment,i.Lazy,i.Memo,i.Portal,i.Profiler,i.StrictMode,i.Suspense,i.isValidElementType,i.isAsyncMode,i.isConcurrentMode,i.isContextConsumer,i.isContextProvider,i.isElement,i.isForwardRef,i.isFragment,i.isLazy,i.isMemo,i.isPortal,i.isProfiler,i.isStrictMode,i.isSuspense;var a=n(function(t){t.exports=o}),u=(a.isValidElementType,Object.getOwnPropertySymbols),s=Object.prototype.hasOwnProperty,f=Object.prototype.propertyIsEnumerable;!function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},n=0;n<10;n++)e["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(e).map(function(t){return e[t]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(t){r[t]=t}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(t){return!1}}()||Object.assign,Function.call.bind(Object.prototype.hasOwnProperty);function l(){}function p(){}p.resetWarningCache=l;var h=n(function(t){t.exports=function(){function t(t,e,n,r,o,i){if("SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"!==i){var a=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw a.name="Invariant Violation",a}}function e(){return t}var n={array:t.isRequired=t,bool:t,func:t,number:t,object:t,string:t,symbol:t,any:t,arrayOf:e,element:t,elementType:t,instanceOf:e,node:t,objectOf:e,oneOf:e,oneOfType:e,shape:e,exact:e,checkPropTypes:p,resetWarningCache:l};return n.PropTypes=n}()});function T(){return(T=Object.assign||function(t){for(var e=1;ee?n.splice(e,n.length-e,r):n.push(r),f({action:"PUSH",location:r,index:e,entries:n})}})},replace:function(t,e){var n="REPLACE",r=L(t,e,l(),y.location);s.confirmTransitionTo(r,n,o,function(t){t&&(y.entries[y.index]=r,f({action:n,location:r}))})},go:v,goBack:function(){v(-1)},goForward:function(){v(1)},canGo:function(t){var e=y.index+t;return 0<=e&&e 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to) {\n var from = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n var toParts = to && to.split('/') || [];\n var fromParts = from && from.split('/') || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash = void 0;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) {\n fromParts.unshift('..');\n }if (mustEndAbs && fromParts[0] !== '' && (!fromParts[0] || !isAbsolute(fromParts[0]))) fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction valueEqual(a, b) {\n if (a === b) return true;\n\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n return Array.isArray(b) && a.length === b.length && a.every(function (item, index) {\n return valueEqual(item, b[index]);\n });\n }\n\n var aType = typeof a === 'undefined' ? 'undefined' : _typeof(a);\n var bType = typeof b === 'undefined' ? 'undefined' : _typeof(b);\n\n if (aType !== bType) return false;\n\n if (aType === 'object') {\n var aValue = a.valueOf();\n var bValue = b.valueOf();\n\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n var aKeys = Object.keys(a);\n var bKeys = Object.keys(b);\n\n if (aKeys.length !== bKeys.length) return false;\n\n return aKeys.every(function (key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n\nexport default valueEqual;","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n\n if (isProduction) {\n throw new Error(prefix);\n } else {\n throw new Error(prefix + \": \" + (message || ''));\n }\n}\n\nexport default invariant;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return new RegExp('^' + prefix + '(\\\\/|\\\\?|#|$)', 'i').test(path);\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n var hashIndex = window.location.href.indexOf('#');\n window.location.replace(window.location.href.slice(0, hashIndex >= 0 ? hashIndex : 0) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n return '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","export default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","import React, { Component } from 'react';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport warning from 'tiny-warning';\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {};\n\nfunction getUniqueId() {\n var key = '__global_unique_id__';\n return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1;\n}\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + getUniqueId() + '__';\n\n var Provider = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Provider, _Component);\n\n function Provider() {\n var _this;\n\n _this = _Component.apply(this, arguments) || this;\n _this.emitter = createEventEmitter(_this.props.value);\n return _this;\n }\n\n var _proto = Provider.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0;\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (process.env.NODE_ENV !== 'production') {\n warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: ' + changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes.object.isRequired, _Provider$childContex);\n\n var Consumer = /*#__PURE__*/function (_Component2) {\n _inheritsLoose(Consumer, _Component2);\n\n function Consumer() {\n var _this2;\n\n _this2 = _Component2.apply(this, arguments) || this;\n _this2.state = {\n value: _this2.getValue()\n };\n\n _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n };\n\n return _this2;\n }\n\n var _proto2 = Consumer.prototype;\n\n _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n _proto2.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n _proto2.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = PropTypes.object, _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nvar index = React.createContext || createReactContext;\n\nexport default index;\n","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = res[2] || defaultDelimiter\n var pattern = capture || group\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options))\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$')\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","'use strict';\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar ReactIs = require('react-is');\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\n\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\n\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\n\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\n\nvar TYPE_STATICS = {};\nTYPE_STATICS[ReactIs.ForwardRef] = FORWARD_REF_STATICS;\n\nfunction getStatics(component) {\n if (ReactIs.isMemo(component)) {\n return MEMO_STATICS;\n }\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\n\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n\n return targetComponent;\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","import _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { createMemoryHistory, createLocation, locationsAreEqual, createPath } from 'history';\nimport warning from 'tiny-warning';\nimport createContext from 'mini-create-react-context';\nimport invariant from 'tiny-invariant';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport pathToRegexp from 'path-to-regexp';\nimport { isValidElementType } from 'react-is';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport hoistStatics from 'hoist-non-react-statics';\n\n// TODO: Replace with React.createContext once we can assume React 16+\n\nvar createNamedContext = function createNamedContext(name) {\n var context = createContext();\n context.displayName = name;\n return context;\n};\n\nvar historyContext =\n/*#__PURE__*/\ncreateNamedContext(\"Router-History\");\n\n// TODO: Replace with React.createContext once we can assume React 16+\n\nvar createNamedContext$1 = function createNamedContext(name) {\n var context = createContext();\n context.displayName = name;\n return context;\n};\n\nvar context =\n/*#__PURE__*/\ncreateNamedContext$1(\"Router\");\n\n/**\n * The public API for putting history on context.\n */\n\nvar Router =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Router, _React$Component);\n\n Router.computeRootMatch = function computeRootMatch(pathname) {\n return {\n path: \"/\",\n url: \"/\",\n params: {},\n isExact: pathname === \"/\"\n };\n };\n\n function Router(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.state = {\n location: props.history.location\n }; // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n\n _this._isMounted = false;\n _this._pendingLocation = null;\n\n if (!props.staticContext) {\n _this.unlisten = props.history.listen(function (location) {\n if (_this._isMounted) {\n _this.setState({\n location: location\n });\n } else {\n _this._pendingLocation = location;\n }\n });\n }\n\n return _this;\n }\n\n var _proto = Router.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({\n location: this._pendingLocation\n });\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.unlisten) this.unlisten();\n };\n\n _proto.render = function render() {\n return React.createElement(context.Provider, {\n value: {\n history: this.props.history,\n location: this.state.location,\n match: Router.computeRootMatch(this.state.location.pathname),\n staticContext: this.props.staticContext\n }\n }, React.createElement(historyContext.Provider, {\n children: this.props.children || null,\n value: this.props.history\n }));\n };\n\n return Router;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function (prevProps) {\n process.env.NODE_ENV !== \"production\" ? warning(prevProps.history === this.props.history, \"You cannot change \") : void 0;\n };\n}\n\n/**\n * The public API for a that stores location in memory.\n */\n\nvar MemoryRouter =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(MemoryRouter, _React$Component);\n\n function MemoryRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.history = createMemoryHistory(_this.props);\n return _this;\n }\n\n var _proto = MemoryRouter.prototype;\n\n _proto.render = function render() {\n return React.createElement(Router, {\n history: this.history,\n children: this.props.children\n });\n };\n\n return MemoryRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \" ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\") : void 0;\n };\n}\n\nvar Lifecycle =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Lifecycle, _React$Component);\n\n function Lifecycle() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Lifecycle.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n };\n\n _proto.render = function render() {\n return null;\n };\n\n return Lifecycle;\n}(React.Component);\n\n/**\n * The public API for prompting the user before navigating away from a screen.\n */\n\nfunction Prompt(_ref) {\n var message = _ref.message,\n _ref$when = _ref.when,\n when = _ref$when === void 0 ? true : _ref$when;\n return React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n if (!when || context.staticContext) return null;\n var method = context.history.block;\n return React.createElement(Lifecycle, {\n onMount: function onMount(self) {\n self.release = method(message);\n },\n onUpdate: function onUpdate(self, prevProps) {\n if (prevProps.message !== message) {\n self.release();\n self.release = method(message);\n }\n },\n onUnmount: function onUnmount(self) {\n self.release();\n },\n message: message\n });\n });\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n var messageType = PropTypes.oneOfType([PropTypes.func, PropTypes.string]);\n Prompt.propTypes = {\n when: PropTypes.bool,\n message: messageType.isRequired\n };\n}\n\nvar cache = {};\nvar cacheLimit = 10000;\nvar cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n var generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\n\n\nfunction generatePath(path, params) {\n if (path === void 0) {\n path = \"/\";\n }\n\n if (params === void 0) {\n params = {};\n }\n\n return path === \"/\" ? path : compilePath(path)(params, {\n pretty: true\n });\n}\n\n/**\n * The public API for navigating programmatically with a component.\n */\n\nfunction Redirect(_ref) {\n var computedMatch = _ref.computedMatch,\n to = _ref.to,\n _ref$push = _ref.push,\n push = _ref$push === void 0 ? false : _ref$push;\n return React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var history = context.history,\n staticContext = context.staticContext;\n var method = push ? history.push : history.replace;\n var location = createLocation(computedMatch ? typeof to === \"string\" ? generatePath(to, computedMatch.params) : _extends({}, to, {\n pathname: generatePath(to.pathname, computedMatch.params)\n }) : to); // When rendering in a static context,\n // set the new location immediately.\n\n if (staticContext) {\n method(location);\n return null;\n }\n\n return React.createElement(Lifecycle, {\n onMount: function onMount() {\n method(location);\n },\n onUpdate: function onUpdate(self, prevProps) {\n var prevLocation = createLocation(prevProps.to);\n\n if (!locationsAreEqual(prevLocation, _extends({}, location, {\n key: prevLocation.key\n }))) {\n method(location);\n }\n },\n to: to\n });\n });\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nvar cache$1 = {};\nvar cacheLimit$1 = 10000;\nvar cacheCount$1 = 0;\n\nfunction compilePath$1(path, options) {\n var cacheKey = \"\" + options.end + options.strict + options.sensitive;\n var pathCache = cache$1[cacheKey] || (cache$1[cacheKey] = {});\n if (pathCache[path]) return pathCache[path];\n var keys = [];\n var regexp = pathToRegexp(path, keys, options);\n var result = {\n regexp: regexp,\n keys: keys\n };\n\n if (cacheCount$1 < cacheLimit$1) {\n pathCache[path] = result;\n cacheCount$1++;\n }\n\n return result;\n}\n/**\n * Public API for matching a URL pathname to a path.\n */\n\n\nfunction matchPath(pathname, options) {\n if (options === void 0) {\n options = {};\n }\n\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = {\n path: options\n };\n }\n\n var _options = options,\n path = _options.path,\n _options$exact = _options.exact,\n exact = _options$exact === void 0 ? false : _options$exact,\n _options$strict = _options.strict,\n strict = _options$strict === void 0 ? false : _options$strict,\n _options$sensitive = _options.sensitive,\n sensitive = _options$sensitive === void 0 ? false : _options$sensitive;\n var paths = [].concat(path);\n return paths.reduce(function (matched, path) {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n var _compilePath = compilePath$1(path, {\n end: exact,\n strict: strict,\n sensitive: sensitive\n }),\n regexp = _compilePath.regexp,\n keys = _compilePath.keys;\n\n var match = regexp.exec(pathname);\n if (!match) return null;\n var url = match[0],\n values = match.slice(1);\n var isExact = pathname === url;\n if (exact && !isExact) return null;\n return {\n path: path,\n // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url,\n // the matched portion of the URL\n isExact: isExact,\n // whether or not we matched exactly\n params: keys.reduce(function (memo, key, index) {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n var value = children(props);\n process.env.NODE_ENV !== \"production\" ? warning(value !== undefined, \"You returned `undefined` from the `children` function of \" + (\", but you \") + \"should have returned a React element or `null`\") : void 0;\n return value || null;\n}\n/**\n * The public API for matching a single path and rendering.\n */\n\n\nvar Route =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Route, _React$Component);\n\n function Route() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Route.prototype;\n\n _proto.render = function render() {\n var _this = this;\n\n return React.createElement(context.Consumer, null, function (context$1) {\n !context$1 ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var location = _this.props.location || context$1.location;\n var match = _this.props.computedMatch ? _this.props.computedMatch // already computed the match for us\n : _this.props.path ? matchPath(location.pathname, _this.props) : context$1.match;\n\n var props = _extends({}, context$1, {\n location: location,\n match: match\n });\n\n var _this$props = _this.props,\n children = _this$props.children,\n component = _this$props.component,\n render = _this$props.render; // Preact uses an empty array as children by\n // default, so use null if that's the case.\n\n if (Array.isArray(children) && children.length === 0) {\n children = null;\n }\n\n return React.createElement(context.Provider, {\n value: props\n }, props.match ? children ? typeof children === \"function\" ? process.env.NODE_ENV !== \"production\" ? evalChildrenDev(children, props, _this.props.path) : children(props) : children : component ? React.createElement(component, props) : render ? render(props) : null : typeof children === \"function\" ? process.env.NODE_ENV !== \"production\" ? evalChildrenDev(children, props, _this.props.path) : children(props) : null);\n });\n };\n\n return Route;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: function component(props, propName) {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\"Invalid prop 'component' supplied to 'Route': the prop is not a valid React component\");\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.component), \"You should not use and in the same route; will be ignored\") : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.render), \"You should not use and in the same route; will be ignored\") : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.component && this.props.render), \"You should not use and in the same route; will be ignored\") : void 0;\n };\n\n Route.prototype.componentDidUpdate = function (prevProps) {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.location && !prevProps.location), ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(!this.props.location && prevProps.location), ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.') : void 0;\n };\n}\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n return _extends({}, location, {\n pathname: addLeadingSlash(basename) + location.pathname\n });\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n var base = addLeadingSlash(basename);\n if (location.pathname.indexOf(base) !== 0) return location;\n return _extends({}, location, {\n pathname: location.pathname.substr(base.length)\n });\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return function () {\n process.env.NODE_ENV !== \"production\" ? invariant(false, \"You cannot %s with \", methodName) : invariant(false) ;\n };\n}\n\nfunction noop() {}\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\n\n\nvar StaticRouter =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(StaticRouter, _React$Component);\n\n function StaticRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _this.handlePush = function (location) {\n return _this.navigateTo(location, \"PUSH\");\n };\n\n _this.handleReplace = function (location) {\n return _this.navigateTo(location, \"REPLACE\");\n };\n\n _this.handleListen = function () {\n return noop;\n };\n\n _this.handleBlock = function () {\n return noop;\n };\n\n return _this;\n }\n\n var _proto = StaticRouter.prototype;\n\n _proto.navigateTo = function navigateTo(location, action) {\n var _this$props = this.props,\n _this$props$basename = _this$props.basename,\n basename = _this$props$basename === void 0 ? \"\" : _this$props$basename,\n _this$props$context = _this$props.context,\n context = _this$props$context === void 0 ? {} : _this$props$context;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n };\n\n _proto.render = function render() {\n var _this$props2 = this.props,\n _this$props2$basename = _this$props2.basename,\n basename = _this$props2$basename === void 0 ? \"\" : _this$props2$basename,\n _this$props2$context = _this$props2.context,\n context = _this$props2$context === void 0 ? {} : _this$props2$context,\n _this$props2$location = _this$props2.location,\n location = _this$props2$location === void 0 ? \"/\" : _this$props2$location,\n rest = _objectWithoutPropertiesLoose(_this$props2, [\"basename\", \"context\", \"location\"]);\n\n var history = {\n createHref: function createHref(path) {\n return addLeadingSlash(basename + createURL(path));\n },\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n return React.createElement(Router, _extends({}, rest, {\n history: history,\n staticContext: context\n }));\n };\n\n return StaticRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \" ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { StaticRouter as Router }`.\") : void 0;\n };\n}\n\n/**\n * The public API for rendering the first that matches.\n */\n\nvar Switch =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Switch, _React$Component);\n\n function Switch() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Switch.prototype;\n\n _proto.render = function render() {\n var _this = this;\n\n return React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var location = _this.props.location || context.location;\n var element, match; // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n\n React.Children.forEach(_this.props.children, function (child) {\n if (match == null && React.isValidElement(child)) {\n element = child;\n var path = child.props.path || child.props.from;\n match = path ? matchPath(location.pathname, _extends({}, child.props, {\n path: path\n })) : context.match;\n }\n });\n return match ? React.cloneElement(element, {\n location: location,\n computedMatch: match\n }) : null;\n });\n };\n\n return Switch;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function (prevProps) {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.location && !prevProps.location), ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(!this.props.location && prevProps.location), ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.') : void 0;\n };\n}\n\n/**\n * A public higher-order component to access the imperative API\n */\n\nfunction withRouter(Component) {\n var displayName = \"withRouter(\" + (Component.displayName || Component.name) + \")\";\n\n var C = function C(props) {\n var wrappedComponentRef = props.wrappedComponentRef,\n remainingProps = _objectWithoutPropertiesLoose(props, [\"wrappedComponentRef\"]);\n\n return React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use <\" + displayName + \" /> outside a \") : invariant(false) : void 0;\n return React.createElement(Component, _extends({}, remainingProps, context, {\n ref: wrappedComponentRef\n }));\n });\n };\n\n C.displayName = displayName;\n C.WrappedComponent = Component;\n\n if (process.env.NODE_ENV !== \"production\") {\n C.propTypes = {\n wrappedComponentRef: PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.object])\n };\n }\n\n return hoistStatics(C, Component);\n}\n\nvar useContext = React.useContext;\nfunction useHistory() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useHistory()\") : invariant(false) : void 0;\n }\n\n return useContext(historyContext);\n}\nfunction useLocation() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useLocation()\") : invariant(false) : void 0;\n }\n\n return useContext(context).location;\n}\nfunction useParams() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useParams()\") : invariant(false) : void 0;\n }\n\n var match = useContext(context).match;\n return match ? match.params : {};\n}\nfunction useRouteMatch(path) {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useRouteMatch()\") : invariant(false) : void 0;\n }\n\n var location = useLocation();\n var match = useContext(context).match;\n return path ? matchPath(location.pathname, path) : match;\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n if (typeof window !== \"undefined\") {\n var global = window;\n var key = \"__react_router_build__\";\n var buildNames = {\n cjs: \"CommonJS\",\n esm: \"ES modules\",\n umd: \"UMD\"\n };\n\n if (global[key] && global[key] !== \"esm\") {\n var initialBuildName = buildNames[global[key]];\n var secondaryBuildName = buildNames[\"esm\"]; // TODO: Add link to article that explains in detail how to avoid\n // loading 2 different builds.\n\n throw new Error(\"You are loading the \" + secondaryBuildName + \" build of React Router \" + (\"on a page that is already running the \" + initialBuildName + \" \") + \"build, so things won't work right.\");\n }\n\n global[key] = \"esm\";\n }\n}\n\nexport { MemoryRouter, Prompt, Redirect, Route, Router, StaticRouter, Switch, historyContext as __HistoryContext, context as __RouterContext, generatePath, matchPath, useHistory, useLocation, useParams, useRouteMatch, withRouter };\n//# sourceMappingURL=react-router.js.map\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n return ;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const method = replace ? history.replace : history.push;\n\n method(location);\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n );\n };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link.js\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\",\n activeStyle,\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n sensitive,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n sensitive,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n const className = isActive\n ? joinClassnames(classNameProp, activeClassName)\n : classNameProp;\n const style = isActive ? { ...styleProp, ...activeStyle } : styleProp;\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return ;\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.string,\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.object\n };\n}\n\nexport default NavLink;\n"],"names":["_inheritsLoose","subClass","superClass","prototype","Object","create","constructor","__proto__","defineProperty","exports","value","b","Symbol","for","c","d","e","f","g","h","k","l","m","n","p","q","r","t","v","w","x","a","u","$$typeof","type","y","module","require$$0","getOwnPropertySymbols","hasOwnProperty","propIsEnumerable","propertyIsEnumerable","assign","test1","String","getOwnPropertyNames","test2","i","fromCharCode","map","join","test3","split","forEach","letter","keys","err","shouldUseNative","Function","call","bind","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","props","propName","componentName","location","propFullName","secret","Error","name","getShim","ReactPropTypes","array","isRequired","bool","func","number","object","string","symbol","any","arrayOf","element","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","require$$2","_extends","target","arguments","length","source","key","apply","this","isAbsolute","pathname","charAt","spliceOne","list","index","pop","_typeof","iterator","obj","prefix","invariant","condition","addLeadingSlash","path","stripLeadingSlash","substr","stripBasename","RegExp","test","hasBasename","stripTrailingSlash","slice","createPath","search","hash","createLocation","state","currentLocation","hashIndex","indexOf","searchIndex","parsePath","undefined","decodeURI","URIError","to","from","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","concat","hasTrailingSlash","last","up","part","unshift","result","resolvePathname","locationsAreEqual","valueEqual","Array","isArray","every","item","aType","aValue","valueOf","bValue","aKeys","bKeys","createTransitionManager","prompt","listeners","setPrompt","nextPrompt","confirmTransitionTo","action","getUserConfirmation","callback","appendListener","fn","isActive","listener","push","filter","notifyListeners","_len","args","_key","canUseDOM","window","document","createElement","getConfirmation","message","confirm","PopStateEvent","HashChangeEvent","getHistoryState","history","createBrowserHistory","globalHistory","canUseHistory","ua","navigator","userAgent","supportsHistory","needsHashChangeListener","_props","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","basename","getDOMLocation","historyState","_ref","_window$location","createKey","Math","random","toString","transitionManager","setState","nextState","handlePopState","event","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","ok","fromLocation","toLocation","toIndex","allKeys","fromIndex","delta","go","revertPop","initialLocation","createHref","listenerCount","checkDOMListeners","addEventListener","removeEventListener","isBlocked","href","pushState","prevIndex","nextKeys","replace","replaceState","goBack","goForward","block","unblock","listen","unlisten","HashChangeEvent$1","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","getHashPath","substring","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","encodedPath","prevLocation","allPaths","lastIndexOf","pushHashPath","nextPaths","clamp","lowerBound","upperBound","min","max","MAX_SIGNED_31_BIT_INT","commonjsGlobal","globalThis","global","str","options","tokensToFunction","parse","React","createContext","defaultValue","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","getUniqueId","Provider","_Component","_this","emitter","handlers","on","handler","off","get","set","newValue","changedBits","createEventEmitter","_proto","getChildContext","componentWillReceiveProps","nextProps","oldValue","objectIs","render","children","Component","childContextTypes","Consumer","_Component2","_this2","getValue","onUpdate","observedBits","_proto2","componentDidMount","context","componentWillUnmount","onlyChild","contextTypes","arr","pathToRegexp","tokensToRegExp","PATH_REGEXP","res","group","tokens","defaultDelimiter","delimiter","exec","escaped","offset","next","capture","modifier","asterisk","partial","repeat","optional","pattern","escapeString","encodeURIComponentPretty","encodeURI","charCodeAt","toUpperCase","matches","opts","data","encode","pretty","encodeURIComponent","token","segment","TypeError","isarray","JSON","stringify","j","attachKeys","re","flags","sensitive","strict","end","route","endsWithDelimiter","groups","match","regexpToRegexp","parts","arrayToRegexp","stringToRegexp","_objectWithoutPropertiesLoose","excluded","sourceKeys","REACT_STATICS","contextType","defaultProps","displayName","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","component","ReactIs","isMemo","ForwardRef","getOwnPropertyDescriptor","getPrototypeOf","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","descriptor","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","entries","entry","nextIndex","nextEntries","splice","canGo","resolveToLocation","normalizeToLocation","forwardRefShim","C","BrowserRouter","createHistory","Router","HashRouter","forwardRef","LinkAnchor","forwardedRef","innerRef","navigate","onClick","rest","ex","preventDefault","defaultPrevented","button","metaKey","altKey","ctrlKey","shiftKey","isModifiedEvent","ref","Link","RouterContext","NavLink","ariaCurrent","activeClassName","activeStyle","classNameProp","className","isActiveProp","locationProp","styleProp","style","escapedPath","matchPath","classnames","joinClassnames"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/react-router-dom/warnAboutDeprecatedCJSRequire.js b/node_modules/react-router-dom/warnAboutDeprecatedCJSRequire.js new file mode 100644 index 0000000..30bb998 --- /dev/null +++ b/node_modules/react-router-dom/warnAboutDeprecatedCJSRequire.js @@ -0,0 +1,36 @@ +/* eslint-disable prefer-arrow-callback, no-empty */ +"use strict"; + +var printWarning = function() {}; + +if (process.env.NODE_ENV !== "production") { + printWarning = function(format, subs) { + var index = 0; + var message = + "Warning: " + + (subs.length > 0 + ? format.replace(/%s/g, function() { + return subs[index++]; + }) + : format); + + if (typeof console !== "undefined") { + console.error(message); + } + + try { + // --- Welcome to debugging React Router --- + // This error was thrown as a convenience so that you can use the + // stack trace to find the callsite that triggered this warning. + throw new Error(message); + } catch (e) {} + }; +} + +module.exports = function(member) { + printWarning( + 'Please use `require("react-router-dom").%s` instead of `require("react-router-dom/%s")`. ' + + "Support for the latter will be removed in the next major release.", + [member, member] + ); +}; diff --git a/node_modules/react-router-dom/withRouter.js b/node_modules/react-router-dom/withRouter.js new file mode 100644 index 0000000..214676a --- /dev/null +++ b/node_modules/react-router-dom/withRouter.js @@ -0,0 +1,3 @@ +"use strict"; +require("./warnAboutDeprecatedCJSRequire")("withRouter"); +module.exports = require("./index.js").withRouter; diff --git a/node_modules/react-router/LICENSE b/node_modules/react-router/LICENSE new file mode 100644 index 0000000..dc15fe3 --- /dev/null +++ b/node_modules/react-router/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) React Training 2016-2018 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/react-router/MemoryRouter.js b/node_modules/react-router/MemoryRouter.js new file mode 100644 index 0000000..79b74bb --- /dev/null +++ b/node_modules/react-router/MemoryRouter.js @@ -0,0 +1,3 @@ +"use strict"; +require("./warnAboutDeprecatedCJSRequire")("MemoryRouter"); +module.exports = require("./index.js").MemoryRouter; diff --git a/node_modules/react-router/Prompt.js b/node_modules/react-router/Prompt.js new file mode 100644 index 0000000..20f629b --- /dev/null +++ b/node_modules/react-router/Prompt.js @@ -0,0 +1,3 @@ +"use strict"; +require("./warnAboutDeprecatedCJSRequire")("Prompt"); +module.exports = require("./index.js").Prompt; diff --git a/node_modules/react-router/README.md b/node_modules/react-router/README.md new file mode 100644 index 0000000..7cd1ec3 --- /dev/null +++ b/node_modules/react-router/README.md @@ -0,0 +1,39 @@ +# react-router + +Declarative routing for [React](https://facebook.github.io/react). + +## Installation + +Using [npm](https://www.npmjs.com/): + + $ npm install --save react-router + +**Note:** This package provides the core routing functionality for React Router, but you might not want to install it directly. If you are writing an application that will run in the browser, you should instead install `react-router-dom`. Similarly, if you are writing a React Native application, you should instead install `react-router-native`. Both of those will install `react-router` as a dependency. + +Then with a module bundler like [webpack](https://webpack.github.io/), use as you would anything else: + +```js +// using ES6 modules +import { Router, Route, Switch } from "react-router"; + +// using CommonJS modules +var Router = require("react-router").Router; +var Route = require("react-router").Route; +var Switch = require("react-router").Switch; +``` + +The UMD build is also available on [unpkg](https://unpkg.com): + +```html + +``` + +You can find the library on `window.ReactRouter`. + +## Issues + +If you find a bug, please file an issue on [our issue tracker on GitHub](https://github.com/ReactTraining/react-router/issues). + +## Credits + +React Router is built and maintained by [React Training](https://reacttraining.com). diff --git a/node_modules/react-router/Redirect.js b/node_modules/react-router/Redirect.js new file mode 100644 index 0000000..6c763ab --- /dev/null +++ b/node_modules/react-router/Redirect.js @@ -0,0 +1,3 @@ +"use strict"; +require("./warnAboutDeprecatedCJSRequire")("Redirect"); +module.exports = require("./index.js").Redirect; diff --git a/node_modules/react-router/Route.js b/node_modules/react-router/Route.js new file mode 100644 index 0000000..0d3b1f5 --- /dev/null +++ b/node_modules/react-router/Route.js @@ -0,0 +1,3 @@ +"use strict"; +require("./warnAboutDeprecatedCJSRequire")("Route"); +module.exports = require("./index.js").Route; diff --git a/node_modules/react-router/Router.js b/node_modules/react-router/Router.js new file mode 100644 index 0000000..ca27b72 --- /dev/null +++ b/node_modules/react-router/Router.js @@ -0,0 +1,3 @@ +"use strict"; +require("./warnAboutDeprecatedCJSRequire")("Router"); +module.exports = require("./index.js").Router; diff --git a/node_modules/react-router/StaticRouter.js b/node_modules/react-router/StaticRouter.js new file mode 100644 index 0000000..6bc3513 --- /dev/null +++ b/node_modules/react-router/StaticRouter.js @@ -0,0 +1,3 @@ +"use strict"; +require("./warnAboutDeprecatedCJSRequire")("StaticRouter"); +module.exports = require("./index.js").StaticRouter; diff --git a/node_modules/react-router/Switch.js b/node_modules/react-router/Switch.js new file mode 100644 index 0000000..a4b38eb --- /dev/null +++ b/node_modules/react-router/Switch.js @@ -0,0 +1,3 @@ +"use strict"; +require("./warnAboutDeprecatedCJSRequire")("Switch"); +module.exports = require("./index.js").Switch; diff --git a/node_modules/react-router/cjs/react-router.js b/node_modules/react-router/cjs/react-router.js new file mode 100644 index 0000000..52df7f2 --- /dev/null +++ b/node_modules/react-router/cjs/react-router.js @@ -0,0 +1,825 @@ +'use strict'; + +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var React = _interopDefault(require('react')); +var PropTypes = _interopDefault(require('prop-types')); +var history = require('history'); +var warning = _interopDefault(require('tiny-warning')); +var createContext = _interopDefault(require('mini-create-react-context')); +var invariant = _interopDefault(require('tiny-invariant')); +var pathToRegexp = _interopDefault(require('path-to-regexp')); +var reactIs = require('react-is'); +var hoistStatics = _interopDefault(require('hoist-non-react-statics')); + +function _extends() { + _extends = Object.assign || function (target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + + return target; + }; + + return _extends.apply(this, arguments); +} + +function _inheritsLoose(subClass, superClass) { + subClass.prototype = Object.create(superClass.prototype); + subClass.prototype.constructor = subClass; + subClass.__proto__ = superClass; +} + +function _objectWithoutPropertiesLoose(source, excluded) { + if (source == null) return {}; + var target = {}; + var sourceKeys = Object.keys(source); + var key, i; + + for (i = 0; i < sourceKeys.length; i++) { + key = sourceKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + target[key] = source[key]; + } + + return target; +} + +// TODO: Replace with React.createContext once we can assume React 16+ + +var createNamedContext = function createNamedContext(name) { + var context = createContext(); + context.displayName = name; + return context; +}; + +var historyContext = +/*#__PURE__*/ +createNamedContext("Router-History"); + +// TODO: Replace with React.createContext once we can assume React 16+ + +var createNamedContext$1 = function createNamedContext(name) { + var context = createContext(); + context.displayName = name; + return context; +}; + +var context = +/*#__PURE__*/ +createNamedContext$1("Router"); + +/** + * The public API for putting history on context. + */ + +var Router = +/*#__PURE__*/ +function (_React$Component) { + _inheritsLoose(Router, _React$Component); + + Router.computeRootMatch = function computeRootMatch(pathname) { + return { + path: "/", + url: "/", + params: {}, + isExact: pathname === "/" + }; + }; + + function Router(props) { + var _this; + + _this = _React$Component.call(this, props) || this; + _this.state = { + location: props.history.location + }; // This is a bit of a hack. We have to start listening for location + // changes here in the constructor in case there are any s + // on the initial render. If there are, they will replace/push when + // they mount and since cDM fires in children before parents, we may + // get a new location before the is mounted. + + _this._isMounted = false; + _this._pendingLocation = null; + + if (!props.staticContext) { + _this.unlisten = props.history.listen(function (location) { + if (_this._isMounted) { + _this.setState({ + location: location + }); + } else { + _this._pendingLocation = location; + } + }); + } + + return _this; + } + + var _proto = Router.prototype; + + _proto.componentDidMount = function componentDidMount() { + this._isMounted = true; + + if (this._pendingLocation) { + this.setState({ + location: this._pendingLocation + }); + } + }; + + _proto.componentWillUnmount = function componentWillUnmount() { + if (this.unlisten) this.unlisten(); + }; + + _proto.render = function render() { + return React.createElement(context.Provider, { + value: { + history: this.props.history, + location: this.state.location, + match: Router.computeRootMatch(this.state.location.pathname), + staticContext: this.props.staticContext + } + }, React.createElement(historyContext.Provider, { + children: this.props.children || null, + value: this.props.history + })); + }; + + return Router; +}(React.Component); + +{ + Router.propTypes = { + children: PropTypes.node, + history: PropTypes.object.isRequired, + staticContext: PropTypes.object + }; + + Router.prototype.componentDidUpdate = function (prevProps) { + warning(prevProps.history === this.props.history, "You cannot change ") ; + }; +} + +/** + * The public API for a that stores location in memory. + */ + +var MemoryRouter = +/*#__PURE__*/ +function (_React$Component) { + _inheritsLoose(MemoryRouter, _React$Component); + + function MemoryRouter() { + var _this; + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this; + _this.history = history.createMemoryHistory(_this.props); + return _this; + } + + var _proto = MemoryRouter.prototype; + + _proto.render = function render() { + return React.createElement(Router, { + history: this.history, + children: this.props.children + }); + }; + + return MemoryRouter; +}(React.Component); + +{ + MemoryRouter.propTypes = { + initialEntries: PropTypes.array, + initialIndex: PropTypes.number, + getUserConfirmation: PropTypes.func, + keyLength: PropTypes.number, + children: PropTypes.node + }; + + MemoryRouter.prototype.componentDidMount = function () { + warning(!this.props.history, " ignores the history prop. To use a custom history, " + "use `import { Router }` instead of `import { MemoryRouter as Router }`.") ; + }; +} + +var Lifecycle = +/*#__PURE__*/ +function (_React$Component) { + _inheritsLoose(Lifecycle, _React$Component); + + function Lifecycle() { + return _React$Component.apply(this, arguments) || this; + } + + var _proto = Lifecycle.prototype; + + _proto.componentDidMount = function componentDidMount() { + if (this.props.onMount) this.props.onMount.call(this, this); + }; + + _proto.componentDidUpdate = function componentDidUpdate(prevProps) { + if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps); + }; + + _proto.componentWillUnmount = function componentWillUnmount() { + if (this.props.onUnmount) this.props.onUnmount.call(this, this); + }; + + _proto.render = function render() { + return null; + }; + + return Lifecycle; +}(React.Component); + +/** + * The public API for prompting the user before navigating away from a screen. + */ + +function Prompt(_ref) { + var message = _ref.message, + _ref$when = _ref.when, + when = _ref$when === void 0 ? true : _ref$when; + return React.createElement(context.Consumer, null, function (context) { + !context ? invariant(false, "You should not use outside a ") : void 0; + if (!when || context.staticContext) return null; + var method = context.history.block; + return React.createElement(Lifecycle, { + onMount: function onMount(self) { + self.release = method(message); + }, + onUpdate: function onUpdate(self, prevProps) { + if (prevProps.message !== message) { + self.release(); + self.release = method(message); + } + }, + onUnmount: function onUnmount(self) { + self.release(); + }, + message: message + }); + }); +} + +{ + var messageType = PropTypes.oneOfType([PropTypes.func, PropTypes.string]); + Prompt.propTypes = { + when: PropTypes.bool, + message: messageType.isRequired + }; +} + +var cache = {}; +var cacheLimit = 10000; +var cacheCount = 0; + +function compilePath(path) { + if (cache[path]) return cache[path]; + var generator = pathToRegexp.compile(path); + + if (cacheCount < cacheLimit) { + cache[path] = generator; + cacheCount++; + } + + return generator; +} +/** + * Public API for generating a URL pathname from a path and parameters. + */ + + +function generatePath(path, params) { + if (path === void 0) { + path = "/"; + } + + if (params === void 0) { + params = {}; + } + + return path === "/" ? path : compilePath(path)(params, { + pretty: true + }); +} + +/** + * The public API for navigating programmatically with a component. + */ + +function Redirect(_ref) { + var computedMatch = _ref.computedMatch, + to = _ref.to, + _ref$push = _ref.push, + push = _ref$push === void 0 ? false : _ref$push; + return React.createElement(context.Consumer, null, function (context) { + !context ? invariant(false, "You should not use outside a ") : void 0; + var history$1 = context.history, + staticContext = context.staticContext; + var method = push ? history$1.push : history$1.replace; + var location = history.createLocation(computedMatch ? typeof to === "string" ? generatePath(to, computedMatch.params) : _extends({}, to, { + pathname: generatePath(to.pathname, computedMatch.params) + }) : to); // When rendering in a static context, + // set the new location immediately. + + if (staticContext) { + method(location); + return null; + } + + return React.createElement(Lifecycle, { + onMount: function onMount() { + method(location); + }, + onUpdate: function onUpdate(self, prevProps) { + var prevLocation = history.createLocation(prevProps.to); + + if (!history.locationsAreEqual(prevLocation, _extends({}, location, { + key: prevLocation.key + }))) { + method(location); + } + }, + to: to + }); + }); +} + +{ + Redirect.propTypes = { + push: PropTypes.bool, + from: PropTypes.string, + to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired + }; +} + +var cache$1 = {}; +var cacheLimit$1 = 10000; +var cacheCount$1 = 0; + +function compilePath$1(path, options) { + var cacheKey = "" + options.end + options.strict + options.sensitive; + var pathCache = cache$1[cacheKey] || (cache$1[cacheKey] = {}); + if (pathCache[path]) return pathCache[path]; + var keys = []; + var regexp = pathToRegexp(path, keys, options); + var result = { + regexp: regexp, + keys: keys + }; + + if (cacheCount$1 < cacheLimit$1) { + pathCache[path] = result; + cacheCount$1++; + } + + return result; +} +/** + * Public API for matching a URL pathname to a path. + */ + + +function matchPath(pathname, options) { + if (options === void 0) { + options = {}; + } + + if (typeof options === "string" || Array.isArray(options)) { + options = { + path: options + }; + } + + var _options = options, + path = _options.path, + _options$exact = _options.exact, + exact = _options$exact === void 0 ? false : _options$exact, + _options$strict = _options.strict, + strict = _options$strict === void 0 ? false : _options$strict, + _options$sensitive = _options.sensitive, + sensitive = _options$sensitive === void 0 ? false : _options$sensitive; + var paths = [].concat(path); + return paths.reduce(function (matched, path) { + if (!path && path !== "") return null; + if (matched) return matched; + + var _compilePath = compilePath$1(path, { + end: exact, + strict: strict, + sensitive: sensitive + }), + regexp = _compilePath.regexp, + keys = _compilePath.keys; + + var match = regexp.exec(pathname); + if (!match) return null; + var url = match[0], + values = match.slice(1); + var isExact = pathname === url; + if (exact && !isExact) return null; + return { + path: path, + // the path used to match + url: path === "/" && url === "" ? "/" : url, + // the matched portion of the URL + isExact: isExact, + // whether or not we matched exactly + params: keys.reduce(function (memo, key, index) { + memo[key.name] = values[index]; + return memo; + }, {}) + }; + }, null); +} + +function isEmptyChildren(children) { + return React.Children.count(children) === 0; +} + +function evalChildrenDev(children, props, path) { + var value = children(props); + warning(value !== undefined, "You returned `undefined` from the `children` function of " + (", but you ") + "should have returned a React element or `null`") ; + return value || null; +} +/** + * The public API for matching a single path and rendering. + */ + + +var Route = +/*#__PURE__*/ +function (_React$Component) { + _inheritsLoose(Route, _React$Component); + + function Route() { + return _React$Component.apply(this, arguments) || this; + } + + var _proto = Route.prototype; + + _proto.render = function render() { + var _this = this; + + return React.createElement(context.Consumer, null, function (context$1) { + !context$1 ? invariant(false, "You should not use outside a ") : void 0; + var location = _this.props.location || context$1.location; + var match = _this.props.computedMatch ? _this.props.computedMatch // already computed the match for us + : _this.props.path ? matchPath(location.pathname, _this.props) : context$1.match; + + var props = _extends({}, context$1, { + location: location, + match: match + }); + + var _this$props = _this.props, + children = _this$props.children, + component = _this$props.component, + render = _this$props.render; // Preact uses an empty array as children by + // default, so use null if that's the case. + + if (Array.isArray(children) && children.length === 0) { + children = null; + } + + return React.createElement(context.Provider, { + value: props + }, props.match ? children ? typeof children === "function" ? evalChildrenDev(children, props, _this.props.path) : children : component ? React.createElement(component, props) : render ? render(props) : null : typeof children === "function" ? evalChildrenDev(children, props, _this.props.path) : null); + }); + }; + + return Route; +}(React.Component); + +{ + Route.propTypes = { + children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]), + component: function component(props, propName) { + if (props[propName] && !reactIs.isValidElementType(props[propName])) { + return new Error("Invalid prop 'component' supplied to 'Route': the prop is not a valid React component"); + } + }, + exact: PropTypes.bool, + location: PropTypes.object, + path: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), + render: PropTypes.func, + sensitive: PropTypes.bool, + strict: PropTypes.bool + }; + + Route.prototype.componentDidMount = function () { + warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.component), "You should not use and in the same route; will be ignored") ; + warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.render), "You should not use and in the same route; will be ignored") ; + warning(!(this.props.component && this.props.render), "You should not use and in the same route; will be ignored") ; + }; + + Route.prototype.componentDidUpdate = function (prevProps) { + warning(!(this.props.location && !prevProps.location), ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no "location" prop and then provided one on a subsequent render.') ; + warning(!(!this.props.location && prevProps.location), ' elements should not change from controlled to uncontrolled (or vice versa). You provided a "location" prop initially but omitted it on a subsequent render.') ; + }; +} + +function addLeadingSlash(path) { + return path.charAt(0) === "/" ? path : "/" + path; +} + +function addBasename(basename, location) { + if (!basename) return location; + return _extends({}, location, { + pathname: addLeadingSlash(basename) + location.pathname + }); +} + +function stripBasename(basename, location) { + if (!basename) return location; + var base = addLeadingSlash(basename); + if (location.pathname.indexOf(base) !== 0) return location; + return _extends({}, location, { + pathname: location.pathname.substr(base.length) + }); +} + +function createURL(location) { + return typeof location === "string" ? location : history.createPath(location); +} + +function staticHandler(methodName) { + return function () { + invariant(false, "You cannot %s with ", methodName) ; + }; +} + +function noop() {} +/** + * The public top-level API for a "static" , so-called because it + * can't actually change the current location. Instead, it just records + * location changes in a context object. Useful mainly in testing and + * server-rendering scenarios. + */ + + +var StaticRouter = +/*#__PURE__*/ +function (_React$Component) { + _inheritsLoose(StaticRouter, _React$Component); + + function StaticRouter() { + var _this; + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this; + + _this.handlePush = function (location) { + return _this.navigateTo(location, "PUSH"); + }; + + _this.handleReplace = function (location) { + return _this.navigateTo(location, "REPLACE"); + }; + + _this.handleListen = function () { + return noop; + }; + + _this.handleBlock = function () { + return noop; + }; + + return _this; + } + + var _proto = StaticRouter.prototype; + + _proto.navigateTo = function navigateTo(location, action) { + var _this$props = this.props, + _this$props$basename = _this$props.basename, + basename = _this$props$basename === void 0 ? "" : _this$props$basename, + _this$props$context = _this$props.context, + context = _this$props$context === void 0 ? {} : _this$props$context; + context.action = action; + context.location = addBasename(basename, history.createLocation(location)); + context.url = createURL(context.location); + }; + + _proto.render = function render() { + var _this$props2 = this.props, + _this$props2$basename = _this$props2.basename, + basename = _this$props2$basename === void 0 ? "" : _this$props2$basename, + _this$props2$context = _this$props2.context, + context = _this$props2$context === void 0 ? {} : _this$props2$context, + _this$props2$location = _this$props2.location, + location = _this$props2$location === void 0 ? "/" : _this$props2$location, + rest = _objectWithoutPropertiesLoose(_this$props2, ["basename", "context", "location"]); + + var history$1 = { + createHref: function createHref(path) { + return addLeadingSlash(basename + createURL(path)); + }, + action: "POP", + location: stripBasename(basename, history.createLocation(location)), + push: this.handlePush, + replace: this.handleReplace, + go: staticHandler("go"), + goBack: staticHandler("goBack"), + goForward: staticHandler("goForward"), + listen: this.handleListen, + block: this.handleBlock + }; + return React.createElement(Router, _extends({}, rest, { + history: history$1, + staticContext: context + })); + }; + + return StaticRouter; +}(React.Component); + +{ + StaticRouter.propTypes = { + basename: PropTypes.string, + context: PropTypes.object, + location: PropTypes.oneOfType([PropTypes.string, PropTypes.object]) + }; + + StaticRouter.prototype.componentDidMount = function () { + warning(!this.props.history, " ignores the history prop. To use a custom history, " + "use `import { Router }` instead of `import { StaticRouter as Router }`.") ; + }; +} + +/** + * The public API for rendering the first that matches. + */ + +var Switch = +/*#__PURE__*/ +function (_React$Component) { + _inheritsLoose(Switch, _React$Component); + + function Switch() { + return _React$Component.apply(this, arguments) || this; + } + + var _proto = Switch.prototype; + + _proto.render = function render() { + var _this = this; + + return React.createElement(context.Consumer, null, function (context) { + !context ? invariant(false, "You should not use outside a ") : void 0; + var location = _this.props.location || context.location; + var element, match; // We use React.Children.forEach instead of React.Children.toArray().find() + // here because toArray adds keys to all child elements and we do not want + // to trigger an unmount/remount for two s that render the same + // component at different URLs. + + React.Children.forEach(_this.props.children, function (child) { + if (match == null && React.isValidElement(child)) { + element = child; + var path = child.props.path || child.props.from; + match = path ? matchPath(location.pathname, _extends({}, child.props, { + path: path + })) : context.match; + } + }); + return match ? React.cloneElement(element, { + location: location, + computedMatch: match + }) : null; + }); + }; + + return Switch; +}(React.Component); + +{ + Switch.propTypes = { + children: PropTypes.node, + location: PropTypes.object + }; + + Switch.prototype.componentDidUpdate = function (prevProps) { + warning(!(this.props.location && !prevProps.location), ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no "location" prop and then provided one on a subsequent render.') ; + warning(!(!this.props.location && prevProps.location), ' elements should not change from controlled to uncontrolled (or vice versa). You provided a "location" prop initially but omitted it on a subsequent render.') ; + }; +} + +/** + * A public higher-order component to access the imperative API + */ + +function withRouter(Component) { + var displayName = "withRouter(" + (Component.displayName || Component.name) + ")"; + + var C = function C(props) { + var wrappedComponentRef = props.wrappedComponentRef, + remainingProps = _objectWithoutPropertiesLoose(props, ["wrappedComponentRef"]); + + return React.createElement(context.Consumer, null, function (context) { + !context ? invariant(false, "You should not use <" + displayName + " /> outside a ") : void 0; + return React.createElement(Component, _extends({}, remainingProps, context, { + ref: wrappedComponentRef + })); + }); + }; + + C.displayName = displayName; + C.WrappedComponent = Component; + + { + C.propTypes = { + wrappedComponentRef: PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.object]) + }; + } + + return hoistStatics(C, Component); +} + +var useContext = React.useContext; +function useHistory() { + { + !(typeof useContext === "function") ? invariant(false, "You must use React >= 16.8 in order to use useHistory()") : void 0; + } + + return useContext(historyContext); +} +function useLocation() { + { + !(typeof useContext === "function") ? invariant(false, "You must use React >= 16.8 in order to use useLocation()") : void 0; + } + + return useContext(context).location; +} +function useParams() { + { + !(typeof useContext === "function") ? invariant(false, "You must use React >= 16.8 in order to use useParams()") : void 0; + } + + var match = useContext(context).match; + return match ? match.params : {}; +} +function useRouteMatch(path) { + { + !(typeof useContext === "function") ? invariant(false, "You must use React >= 16.8 in order to use useRouteMatch()") : void 0; + } + + var location = useLocation(); + var match = useContext(context).match; + return path ? matchPath(location.pathname, path) : match; +} + +{ + if (typeof window !== "undefined") { + var global = window; + var key = "__react_router_build__"; + var buildNames = { + cjs: "CommonJS", + esm: "ES modules", + umd: "UMD" + }; + + if (global[key] && global[key] !== "cjs") { + var initialBuildName = buildNames[global[key]]; + var secondaryBuildName = buildNames["cjs"]; // TODO: Add link to article that explains in detail how to avoid + // loading 2 different builds. + + throw new Error("You are loading the " + secondaryBuildName + " build of React Router " + ("on a page that is already running the " + initialBuildName + " ") + "build, so things won't work right."); + } + + global[key] = "cjs"; + } +} + +exports.MemoryRouter = MemoryRouter; +exports.Prompt = Prompt; +exports.Redirect = Redirect; +exports.Route = Route; +exports.Router = Router; +exports.StaticRouter = StaticRouter; +exports.Switch = Switch; +exports.__HistoryContext = historyContext; +exports.__RouterContext = context; +exports.generatePath = generatePath; +exports.matchPath = matchPath; +exports.useHistory = useHistory; +exports.useLocation = useLocation; +exports.useParams = useParams; +exports.useRouteMatch = useRouteMatch; +exports.withRouter = withRouter; +//# sourceMappingURL=react-router.js.map diff --git a/node_modules/react-router/cjs/react-router.js.map b/node_modules/react-router/cjs/react-router.js.map new file mode 100644 index 0000000..aa7309d --- /dev/null +++ b/node_modules/react-router/cjs/react-router.js.map @@ -0,0 +1 @@ +{"version":3,"file":"react-router.js","sources":["../modules/createNameContext.js","../modules/HistoryContext.js","../modules/RouterContext.js","../modules/Router.js","../modules/MemoryRouter.js","../modules/Lifecycle.js","../modules/Prompt.js","../modules/generatePath.js","../modules/Redirect.js","../modules/matchPath.js","../modules/Route.js","../modules/StaticRouter.js","../modules/Switch.js","../modules/withRouter.js","../modules/hooks.js","../modules/index.js"],"sourcesContent":["// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nexport default createNamedContext;\n","import createNamedContext from \"./createNameContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport HistoryContext from \"./HistoryContext.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n } else {\n this._pendingLocation = location;\n }\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) this.unlisten();\n }\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change \"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\n/**\n * The public API for a that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for prompting the user before navigating away from a screen.\n */\nfunction Prompt({ message, when = true }) {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n if (!when || context.staticContext) return null;\n\n const method = context.history.block;\n\n return (\n {\n self.release = method(message);\n }}\n onUpdate={(self, prevProps) => {\n if (prevProps.message !== message) {\n self.release();\n self.release = method(message);\n }\n }}\n onUnmount={self => {\n self.release();\n }}\n message={message}\n />\n );\n }}\n \n );\n}\n\nif (__DEV__) {\n const messageType = PropTypes.oneOfType([PropTypes.func, PropTypes.string]);\n\n Prompt.propTypes = {\n when: PropTypes.bool,\n message: messageType.isRequired\n };\n}\n\nexport default Prompt;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n\n const generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\nfunction generatePath(path = \"/\", params = {}) {\n return path === \"/\" ? path : compilePath(path)(params, { pretty: true });\n}\n\nexport default generatePath;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, locationsAreEqual } from \"history\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle.js\";\nimport RouterContext from \"./RouterContext.js\";\nimport generatePath from \"./generatePath.js\";\n\n/**\n * The public API for navigating programmatically with a component.\n */\nfunction Redirect({ computedMatch, to, push = false }) {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history, staticContext } = context;\n\n const method = push ? history.push : history.replace;\n const location = createLocation(\n computedMatch\n ? typeof to === \"string\"\n ? generatePath(to, computedMatch.params)\n : {\n ...to,\n pathname: generatePath(to.pathname, computedMatch.params)\n }\n : to\n );\n\n // When rendering in a static context,\n // set the new location immediately.\n if (staticContext) {\n method(location);\n return null;\n }\n\n return (\n {\n method(location);\n }}\n onUpdate={(self, prevProps) => {\n const prevLocation = createLocation(prevProps.to);\n if (\n !locationsAreEqual(prevLocation, {\n ...location,\n key: prevLocation.key\n })\n ) {\n method(location);\n }\n }}\n to={to}\n />\n );\n }}\n \n );\n}\n\nif (__DEV__) {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nexport default Redirect;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && children.length === 0) {\n children = null;\n }\n\n return (\n \n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n \n );\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use and in the same route; will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with \", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return ;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\n/**\n * The public API for rendering the first that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport hoistStatics from \"hoist-non-react-statics\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * A public higher-order component to access the imperative API\n */\nfunction withRouter(Component) {\n const displayName = `withRouter(${Component.displayName || Component.name})`;\n const C = props => {\n const { wrappedComponentRef, ...remainingProps } = props;\n\n return (\n \n {context => {\n invariant(\n context,\n `You should not use <${displayName} /> outside a `\n );\n return (\n \n );\n }}\n \n );\n };\n\n C.displayName = displayName;\n C.WrappedComponent = Component;\n\n if (__DEV__) {\n C.propTypes = {\n wrappedComponentRef: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.object\n ])\n };\n }\n\n return hoistStatics(C, Component);\n}\n\nexport default withRouter;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport Context from \"./RouterContext.js\";\nimport HistoryContext from \"./HistoryContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(HistoryContext);\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(Context).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(Context).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n const location = useLocation();\n const match = useContext(Context).match;\n\n return path ? matchPath(location.pathname, path) : match;\n}\n","if (__DEV__) {\n if (typeof window !== \"undefined\") {\n const global = window;\n const key = \"__react_router_build__\";\n const buildNames = { cjs: \"CommonJS\", esm: \"ES modules\", umd: \"UMD\" };\n\n if (global[key] && global[key] !== process.env.BUILD_FORMAT) {\n const initialBuildName = buildNames[global[key]];\n const secondaryBuildName = buildNames[process.env.BUILD_FORMAT];\n\n // TODO: Add link to article that explains in detail how to avoid\n // loading 2 different builds.\n throw new Error(\n `You are loading the ${secondaryBuildName} build of React Router ` +\n `on a page that is already running the ${initialBuildName} ` +\n `build, so things won't work right.`\n );\n }\n\n global[key] = process.env.BUILD_FORMAT;\n }\n}\n\nexport { default as MemoryRouter } from \"./MemoryRouter.js\";\nexport { default as Prompt } from \"./Prompt.js\";\nexport { default as Redirect } from \"./Redirect.js\";\nexport { default as Route } from \"./Route.js\";\nexport { default as Router } from \"./Router.js\";\nexport { default as StaticRouter } from \"./StaticRouter.js\";\nexport { default as Switch } from \"./Switch.js\";\nexport { default as generatePath } from \"./generatePath.js\";\nexport { default as matchPath } from \"./matchPath.js\";\nexport { default as withRouter } from \"./withRouter.js\";\n\nimport { useHistory, useLocation, useParams, useRouteMatch } from \"./hooks.js\";\nexport { useHistory, useLocation, useParams, useRouteMatch };\n\nexport { default as __HistoryContext } from \"./HistoryContext.js\";\nexport { default as __RouterContext } from \"./RouterContext.js\";\n"],"names":["createNamedContext","name","context","createContext","displayName","historyContext","Router","computeRootMatch","pathname","path","url","params","isExact","props","state","location","history","_isMounted","_pendingLocation","staticContext","unlisten","listen","setState","componentDidMount","componentWillUnmount","render","RouterContext","match","HistoryContext","children","React","Component","propTypes","PropTypes","node","object","isRequired","prototype","componentDidUpdate","prevProps","warning","MemoryRouter","createHistory","initialEntries","array","initialIndex","number","getUserConfirmation","func","keyLength","Lifecycle","onMount","call","onUpdate","onUnmount","Prompt","message","when","invariant","method","block","self","release","messageType","oneOfType","string","bool","cache","cacheLimit","cacheCount","compilePath","generator","pathToRegexp","compile","generatePath","pretty","Redirect","computedMatch","to","push","replace","createLocation","prevLocation","locationsAreEqual","key","from","options","cacheKey","end","strict","sensitive","pathCache","keys","regexp","result","matchPath","Array","isArray","exact","paths","concat","reduce","matched","exec","values","memo","index","isEmptyChildren","Children","count","evalChildrenDev","value","undefined","Route","component","length","createElement","propName","isValidElementType","Error","arrayOf","addLeadingSlash","charAt","addBasename","basename","stripBasename","base","indexOf","substr","createURL","createPath","staticHandler","methodName","noop","StaticRouter","handlePush","navigateTo","handleReplace","handleListen","handleBlock","action","rest","createHref","go","goBack","goForward","Switch","element","forEach","child","isValidElement","cloneElement","withRouter","C","wrappedComponentRef","remainingProps","WrappedComponent","hoistStatics","useContext","useHistory","useLocation","Context","useParams","useRouteMatch","window","global","buildNames","cjs","esm","umd","process","initialBuildName","secondaryBuildName"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/react-router/cjs/react-router.min.js b/node_modules/react-router/cjs/react-router.min.js new file mode 100644 index 0000000..c0631ae --- /dev/null +++ b/node_modules/react-router/cjs/react-router.min.js @@ -0,0 +1,2 @@ +"use strict";function _interopDefault(t){return t&&"object"==typeof t&&"default"in t?t.default:t}Object.defineProperty(exports,"__esModule",{value:!0});var React=_interopDefault(require("react"));require("prop-types");var history=require("history");require("tiny-warning");var createContext=_interopDefault(require("mini-create-react-context")),invariant=_interopDefault(require("tiny-invariant")),pathToRegexp=_interopDefault(require("path-to-regexp"));require("react-is");var hoistStatics=_interopDefault(require("hoist-non-react-statics"));function _extends(){return(_extends=Object.assign||function(t){for(var e=1;e {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nexport default createNamedContext;\n","import createNamedContext from \"./createNameContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport HistoryContext from \"./HistoryContext.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n } else {\n this._pendingLocation = location;\n }\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) this.unlisten();\n }\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change \"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\n/**\n * The public API for a that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for prompting the user before navigating away from a screen.\n */\nfunction Prompt({ message, when = true }) {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n if (!when || context.staticContext) return null;\n\n const method = context.history.block;\n\n return (\n {\n self.release = method(message);\n }}\n onUpdate={(self, prevProps) => {\n if (prevProps.message !== message) {\n self.release();\n self.release = method(message);\n }\n }}\n onUnmount={self => {\n self.release();\n }}\n message={message}\n />\n );\n }}\n \n );\n}\n\nif (__DEV__) {\n const messageType = PropTypes.oneOfType([PropTypes.func, PropTypes.string]);\n\n Prompt.propTypes = {\n when: PropTypes.bool,\n message: messageType.isRequired\n };\n}\n\nexport default Prompt;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n\n const generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\nfunction generatePath(path = \"/\", params = {}) {\n return path === \"/\" ? path : compilePath(path)(params, { pretty: true });\n}\n\nexport default generatePath;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, locationsAreEqual } from \"history\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle.js\";\nimport RouterContext from \"./RouterContext.js\";\nimport generatePath from \"./generatePath.js\";\n\n/**\n * The public API for navigating programmatically with a component.\n */\nfunction Redirect({ computedMatch, to, push = false }) {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history, staticContext } = context;\n\n const method = push ? history.push : history.replace;\n const location = createLocation(\n computedMatch\n ? typeof to === \"string\"\n ? generatePath(to, computedMatch.params)\n : {\n ...to,\n pathname: generatePath(to.pathname, computedMatch.params)\n }\n : to\n );\n\n // When rendering in a static context,\n // set the new location immediately.\n if (staticContext) {\n method(location);\n return null;\n }\n\n return (\n {\n method(location);\n }}\n onUpdate={(self, prevProps) => {\n const prevLocation = createLocation(prevProps.to);\n if (\n !locationsAreEqual(prevLocation, {\n ...location,\n key: prevLocation.key\n })\n ) {\n method(location);\n }\n }}\n to={to}\n />\n );\n }}\n \n );\n}\n\nif (__DEV__) {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nexport default Redirect;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && children.length === 0) {\n children = null;\n }\n\n return (\n \n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n \n );\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use and in the same route; will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with \", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return ;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\n/**\n * The public API for rendering the first that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport hoistStatics from \"hoist-non-react-statics\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * A public higher-order component to access the imperative API\n */\nfunction withRouter(Component) {\n const displayName = `withRouter(${Component.displayName || Component.name})`;\n const C = props => {\n const { wrappedComponentRef, ...remainingProps } = props;\n\n return (\n \n {context => {\n invariant(\n context,\n `You should not use <${displayName} /> outside a `\n );\n return (\n \n );\n }}\n \n );\n };\n\n C.displayName = displayName;\n C.WrappedComponent = Component;\n\n if (__DEV__) {\n C.propTypes = {\n wrappedComponentRef: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.object\n ])\n };\n }\n\n return hoistStatics(C, Component);\n}\n\nexport default withRouter;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport Context from \"./RouterContext.js\";\nimport HistoryContext from \"./HistoryContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(HistoryContext);\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(Context).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(Context).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n const location = useLocation();\n const match = useContext(Context).match;\n\n return path ? matchPath(location.pathname, path) : match;\n}\n"],"names":["createNamedContext","name","context","createContext","displayName","historyContext","Router","props","state","location","history","_isMounted","_pendingLocation","staticContext","unlisten","listen","_this","setState","computeRootMatch","pathname","path","url","params","isExact","componentDidMount","this","componentWillUnmount","render","React","RouterContext","Provider","value","match","HistoryContext","children","Component","MemoryRouter","createHistory","Lifecycle","onMount","call","componentDidUpdate","prevProps","onUpdate","onUnmount","Prompt","message","when","Consumer","invariant","method","block","self","release","cache","cacheLimit","cacheCount","compilePath","generator","pathToRegexp","compile","generatePath","pretty","Redirect","computedMatch","to","push","replace","createLocation","prevLocation","locationsAreEqual","key","options","cacheKey","end","strict","sensitive","pathCache","keys","result","regexp","matchPath","Array","isArray","exact","concat","reduce","matched","exec","values","memo","index","Route","component","length","createElement","addLeadingSlash","charAt","addBasename","basename","stripBasename","base","indexOf","substr","createURL","createPath","staticHandler","methodName","noop","StaticRouter","handlePush","navigateTo","handleReplace","handleListen","handleBlock","action","rest","createHref","go","goBack","goForward","Switch","element","Children","forEach","child","isValidElement","from","cloneElement","withRouter","C","wrappedComponentRef","remainingProps","ref","WrappedComponent","hoistStatics","useContext","useHistory","useLocation","Context","useParams","useRouteMatch"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/react-router/es/MemoryRouter.js b/node_modules/react-router/es/MemoryRouter.js new file mode 100644 index 0000000..bd2d9cf --- /dev/null +++ b/node_modules/react-router/es/MemoryRouter.js @@ -0,0 +1,5 @@ +import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js"; +warnAboutDeprecatedESMImport("MemoryRouter"); + +import { MemoryRouter } from "../esm/react-router.js"; +export default MemoryRouter; diff --git a/node_modules/react-router/es/Prompt.js b/node_modules/react-router/es/Prompt.js new file mode 100644 index 0000000..2f890c8 --- /dev/null +++ b/node_modules/react-router/es/Prompt.js @@ -0,0 +1,5 @@ +import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js"; +warnAboutDeprecatedESMImport("Prompt"); + +import { Prompt } from "../esm/react-router.js"; +export default Prompt; diff --git a/node_modules/react-router/es/Redirect.js b/node_modules/react-router/es/Redirect.js new file mode 100644 index 0000000..7a67bed --- /dev/null +++ b/node_modules/react-router/es/Redirect.js @@ -0,0 +1,5 @@ +import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js"; +warnAboutDeprecatedESMImport("Redirect"); + +import { Redirect } from "../esm/react-router.js"; +export default Redirect; diff --git a/node_modules/react-router/es/Route.js b/node_modules/react-router/es/Route.js new file mode 100644 index 0000000..6f73da6 --- /dev/null +++ b/node_modules/react-router/es/Route.js @@ -0,0 +1,5 @@ +import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js"; +warnAboutDeprecatedESMImport("Route"); + +import { Route } from "../esm/react-router.js"; +export default Route; diff --git a/node_modules/react-router/es/Router.js b/node_modules/react-router/es/Router.js new file mode 100644 index 0000000..bbf3be5 --- /dev/null +++ b/node_modules/react-router/es/Router.js @@ -0,0 +1,5 @@ +import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js"; +warnAboutDeprecatedESMImport("Router"); + +import { Router } from "../esm/react-router.js"; +export default Router; diff --git a/node_modules/react-router/es/StaticRouter.js b/node_modules/react-router/es/StaticRouter.js new file mode 100644 index 0000000..3edcf8b --- /dev/null +++ b/node_modules/react-router/es/StaticRouter.js @@ -0,0 +1,5 @@ +import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js"; +warnAboutDeprecatedESMImport("StaticRouter"); + +import { StaticRouter } from "../esm/react-router.js"; +export default StaticRouter; diff --git a/node_modules/react-router/es/Switch.js b/node_modules/react-router/es/Switch.js new file mode 100644 index 0000000..ab63228 --- /dev/null +++ b/node_modules/react-router/es/Switch.js @@ -0,0 +1,5 @@ +import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js"; +warnAboutDeprecatedESMImport("Switch"); + +import { Switch } from "../esm/react-router.js"; +export default Switch; diff --git a/node_modules/react-router/es/generatePath.js b/node_modules/react-router/es/generatePath.js new file mode 100644 index 0000000..d4d80c9 --- /dev/null +++ b/node_modules/react-router/es/generatePath.js @@ -0,0 +1,5 @@ +import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js"; +warnAboutDeprecatedESMImport("generatePath"); + +import { generatePath } from "../esm/react-router.js"; +export default generatePath; diff --git a/node_modules/react-router/es/matchPath.js b/node_modules/react-router/es/matchPath.js new file mode 100644 index 0000000..6103001 --- /dev/null +++ b/node_modules/react-router/es/matchPath.js @@ -0,0 +1,5 @@ +import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js"; +warnAboutDeprecatedESMImport("matchPath"); + +import { matchPath } from "../esm/react-router.js"; +export default matchPath; diff --git a/node_modules/react-router/es/warnAboutDeprecatedESMImport.js b/node_modules/react-router/es/warnAboutDeprecatedESMImport.js new file mode 100644 index 0000000..78e0b56 --- /dev/null +++ b/node_modules/react-router/es/warnAboutDeprecatedESMImport.js @@ -0,0 +1,34 @@ +/* eslint-disable prefer-arrow-callback, no-empty */ +var printWarning = function() {}; + +if (process.env.NODE_ENV !== "production") { + printWarning = function(format, subs) { + var index = 0; + var message = + "Warning: " + + (subs.length > 0 + ? format.replace(/%s/g, function() { + return subs[index++]; + }) + : format); + + if (typeof console !== "undefined") { + console.error(message); + } + + try { + // --- Welcome to debugging React Router --- + // This error was thrown as a convenience so that you can use the + // stack trace to find the callsite that triggered this warning. + throw new Error(message); + } catch (e) {} + }; +} + +export default function(member) { + printWarning( + 'Please use `import { %s } from "react-router"` instead of `import %s from "react-router/es/%s"`. ' + + "Support for the latter will be removed in the next major release.", + [member, member] + ); +} diff --git a/node_modules/react-router/es/withRouter.js b/node_modules/react-router/es/withRouter.js new file mode 100644 index 0000000..95ea34d --- /dev/null +++ b/node_modules/react-router/es/withRouter.js @@ -0,0 +1,5 @@ +import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js"; +warnAboutDeprecatedESMImport("withRouter"); + +import { withRouter } from "../esm/react-router.js"; +export default withRouter; diff --git a/node_modules/react-router/esm/react-router.js b/node_modules/react-router/esm/react-router.js new file mode 100644 index 0000000..505cfcf --- /dev/null +++ b/node_modules/react-router/esm/react-router.js @@ -0,0 +1,770 @@ +import _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose'; +import React from 'react'; +import PropTypes from 'prop-types'; +import { createMemoryHistory, createLocation, locationsAreEqual, createPath } from 'history'; +import warning from 'tiny-warning'; +import createContext from 'mini-create-react-context'; +import invariant from 'tiny-invariant'; +import _extends from '@babel/runtime/helpers/esm/extends'; +import pathToRegexp from 'path-to-regexp'; +import { isValidElementType } from 'react-is'; +import _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose'; +import hoistStatics from 'hoist-non-react-statics'; + +// TODO: Replace with React.createContext once we can assume React 16+ + +var createNamedContext = function createNamedContext(name) { + var context = createContext(); + context.displayName = name; + return context; +}; + +var historyContext = +/*#__PURE__*/ +createNamedContext("Router-History"); + +// TODO: Replace with React.createContext once we can assume React 16+ + +var createNamedContext$1 = function createNamedContext(name) { + var context = createContext(); + context.displayName = name; + return context; +}; + +var context = +/*#__PURE__*/ +createNamedContext$1("Router"); + +/** + * The public API for putting history on context. + */ + +var Router = +/*#__PURE__*/ +function (_React$Component) { + _inheritsLoose(Router, _React$Component); + + Router.computeRootMatch = function computeRootMatch(pathname) { + return { + path: "/", + url: "/", + params: {}, + isExact: pathname === "/" + }; + }; + + function Router(props) { + var _this; + + _this = _React$Component.call(this, props) || this; + _this.state = { + location: props.history.location + }; // This is a bit of a hack. We have to start listening for location + // changes here in the constructor in case there are any s + // on the initial render. If there are, they will replace/push when + // they mount and since cDM fires in children before parents, we may + // get a new location before the is mounted. + + _this._isMounted = false; + _this._pendingLocation = null; + + if (!props.staticContext) { + _this.unlisten = props.history.listen(function (location) { + if (_this._isMounted) { + _this.setState({ + location: location + }); + } else { + _this._pendingLocation = location; + } + }); + } + + return _this; + } + + var _proto = Router.prototype; + + _proto.componentDidMount = function componentDidMount() { + this._isMounted = true; + + if (this._pendingLocation) { + this.setState({ + location: this._pendingLocation + }); + } + }; + + _proto.componentWillUnmount = function componentWillUnmount() { + if (this.unlisten) this.unlisten(); + }; + + _proto.render = function render() { + return React.createElement(context.Provider, { + value: { + history: this.props.history, + location: this.state.location, + match: Router.computeRootMatch(this.state.location.pathname), + staticContext: this.props.staticContext + } + }, React.createElement(historyContext.Provider, { + children: this.props.children || null, + value: this.props.history + })); + }; + + return Router; +}(React.Component); + +if (process.env.NODE_ENV !== "production") { + Router.propTypes = { + children: PropTypes.node, + history: PropTypes.object.isRequired, + staticContext: PropTypes.object + }; + + Router.prototype.componentDidUpdate = function (prevProps) { + process.env.NODE_ENV !== "production" ? warning(prevProps.history === this.props.history, "You cannot change ") : void 0; + }; +} + +/** + * The public API for a that stores location in memory. + */ + +var MemoryRouter = +/*#__PURE__*/ +function (_React$Component) { + _inheritsLoose(MemoryRouter, _React$Component); + + function MemoryRouter() { + var _this; + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this; + _this.history = createMemoryHistory(_this.props); + return _this; + } + + var _proto = MemoryRouter.prototype; + + _proto.render = function render() { + return React.createElement(Router, { + history: this.history, + children: this.props.children + }); + }; + + return MemoryRouter; +}(React.Component); + +if (process.env.NODE_ENV !== "production") { + MemoryRouter.propTypes = { + initialEntries: PropTypes.array, + initialIndex: PropTypes.number, + getUserConfirmation: PropTypes.func, + keyLength: PropTypes.number, + children: PropTypes.node + }; + + MemoryRouter.prototype.componentDidMount = function () { + process.env.NODE_ENV !== "production" ? warning(!this.props.history, " ignores the history prop. To use a custom history, " + "use `import { Router }` instead of `import { MemoryRouter as Router }`.") : void 0; + }; +} + +var Lifecycle = +/*#__PURE__*/ +function (_React$Component) { + _inheritsLoose(Lifecycle, _React$Component); + + function Lifecycle() { + return _React$Component.apply(this, arguments) || this; + } + + var _proto = Lifecycle.prototype; + + _proto.componentDidMount = function componentDidMount() { + if (this.props.onMount) this.props.onMount.call(this, this); + }; + + _proto.componentDidUpdate = function componentDidUpdate(prevProps) { + if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps); + }; + + _proto.componentWillUnmount = function componentWillUnmount() { + if (this.props.onUnmount) this.props.onUnmount.call(this, this); + }; + + _proto.render = function render() { + return null; + }; + + return Lifecycle; +}(React.Component); + +/** + * The public API for prompting the user before navigating away from a screen. + */ + +function Prompt(_ref) { + var message = _ref.message, + _ref$when = _ref.when, + when = _ref$when === void 0 ? true : _ref$when; + return React.createElement(context.Consumer, null, function (context) { + !context ? process.env.NODE_ENV !== "production" ? invariant(false, "You should not use outside a ") : invariant(false) : void 0; + if (!when || context.staticContext) return null; + var method = context.history.block; + return React.createElement(Lifecycle, { + onMount: function onMount(self) { + self.release = method(message); + }, + onUpdate: function onUpdate(self, prevProps) { + if (prevProps.message !== message) { + self.release(); + self.release = method(message); + } + }, + onUnmount: function onUnmount(self) { + self.release(); + }, + message: message + }); + }); +} + +if (process.env.NODE_ENV !== "production") { + var messageType = PropTypes.oneOfType([PropTypes.func, PropTypes.string]); + Prompt.propTypes = { + when: PropTypes.bool, + message: messageType.isRequired + }; +} + +var cache = {}; +var cacheLimit = 10000; +var cacheCount = 0; + +function compilePath(path) { + if (cache[path]) return cache[path]; + var generator = pathToRegexp.compile(path); + + if (cacheCount < cacheLimit) { + cache[path] = generator; + cacheCount++; + } + + return generator; +} +/** + * Public API for generating a URL pathname from a path and parameters. + */ + + +function generatePath(path, params) { + if (path === void 0) { + path = "/"; + } + + if (params === void 0) { + params = {}; + } + + return path === "/" ? path : compilePath(path)(params, { + pretty: true + }); +} + +/** + * The public API for navigating programmatically with a component. + */ + +function Redirect(_ref) { + var computedMatch = _ref.computedMatch, + to = _ref.to, + _ref$push = _ref.push, + push = _ref$push === void 0 ? false : _ref$push; + return React.createElement(context.Consumer, null, function (context) { + !context ? process.env.NODE_ENV !== "production" ? invariant(false, "You should not use outside a ") : invariant(false) : void 0; + var history = context.history, + staticContext = context.staticContext; + var method = push ? history.push : history.replace; + var location = createLocation(computedMatch ? typeof to === "string" ? generatePath(to, computedMatch.params) : _extends({}, to, { + pathname: generatePath(to.pathname, computedMatch.params) + }) : to); // When rendering in a static context, + // set the new location immediately. + + if (staticContext) { + method(location); + return null; + } + + return React.createElement(Lifecycle, { + onMount: function onMount() { + method(location); + }, + onUpdate: function onUpdate(self, prevProps) { + var prevLocation = createLocation(prevProps.to); + + if (!locationsAreEqual(prevLocation, _extends({}, location, { + key: prevLocation.key + }))) { + method(location); + } + }, + to: to + }); + }); +} + +if (process.env.NODE_ENV !== "production") { + Redirect.propTypes = { + push: PropTypes.bool, + from: PropTypes.string, + to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired + }; +} + +var cache$1 = {}; +var cacheLimit$1 = 10000; +var cacheCount$1 = 0; + +function compilePath$1(path, options) { + var cacheKey = "" + options.end + options.strict + options.sensitive; + var pathCache = cache$1[cacheKey] || (cache$1[cacheKey] = {}); + if (pathCache[path]) return pathCache[path]; + var keys = []; + var regexp = pathToRegexp(path, keys, options); + var result = { + regexp: regexp, + keys: keys + }; + + if (cacheCount$1 < cacheLimit$1) { + pathCache[path] = result; + cacheCount$1++; + } + + return result; +} +/** + * Public API for matching a URL pathname to a path. + */ + + +function matchPath(pathname, options) { + if (options === void 0) { + options = {}; + } + + if (typeof options === "string" || Array.isArray(options)) { + options = { + path: options + }; + } + + var _options = options, + path = _options.path, + _options$exact = _options.exact, + exact = _options$exact === void 0 ? false : _options$exact, + _options$strict = _options.strict, + strict = _options$strict === void 0 ? false : _options$strict, + _options$sensitive = _options.sensitive, + sensitive = _options$sensitive === void 0 ? false : _options$sensitive; + var paths = [].concat(path); + return paths.reduce(function (matched, path) { + if (!path && path !== "") return null; + if (matched) return matched; + + var _compilePath = compilePath$1(path, { + end: exact, + strict: strict, + sensitive: sensitive + }), + regexp = _compilePath.regexp, + keys = _compilePath.keys; + + var match = regexp.exec(pathname); + if (!match) return null; + var url = match[0], + values = match.slice(1); + var isExact = pathname === url; + if (exact && !isExact) return null; + return { + path: path, + // the path used to match + url: path === "/" && url === "" ? "/" : url, + // the matched portion of the URL + isExact: isExact, + // whether or not we matched exactly + params: keys.reduce(function (memo, key, index) { + memo[key.name] = values[index]; + return memo; + }, {}) + }; + }, null); +} + +function isEmptyChildren(children) { + return React.Children.count(children) === 0; +} + +function evalChildrenDev(children, props, path) { + var value = children(props); + process.env.NODE_ENV !== "production" ? warning(value !== undefined, "You returned `undefined` from the `children` function of " + (", but you ") + "should have returned a React element or `null`") : void 0; + return value || null; +} +/** + * The public API for matching a single path and rendering. + */ + + +var Route = +/*#__PURE__*/ +function (_React$Component) { + _inheritsLoose(Route, _React$Component); + + function Route() { + return _React$Component.apply(this, arguments) || this; + } + + var _proto = Route.prototype; + + _proto.render = function render() { + var _this = this; + + return React.createElement(context.Consumer, null, function (context$1) { + !context$1 ? process.env.NODE_ENV !== "production" ? invariant(false, "You should not use outside a ") : invariant(false) : void 0; + var location = _this.props.location || context$1.location; + var match = _this.props.computedMatch ? _this.props.computedMatch // already computed the match for us + : _this.props.path ? matchPath(location.pathname, _this.props) : context$1.match; + + var props = _extends({}, context$1, { + location: location, + match: match + }); + + var _this$props = _this.props, + children = _this$props.children, + component = _this$props.component, + render = _this$props.render; // Preact uses an empty array as children by + // default, so use null if that's the case. + + if (Array.isArray(children) && children.length === 0) { + children = null; + } + + return React.createElement(context.Provider, { + value: props + }, props.match ? children ? typeof children === "function" ? process.env.NODE_ENV !== "production" ? evalChildrenDev(children, props, _this.props.path) : children(props) : children : component ? React.createElement(component, props) : render ? render(props) : null : typeof children === "function" ? process.env.NODE_ENV !== "production" ? evalChildrenDev(children, props, _this.props.path) : children(props) : null); + }); + }; + + return Route; +}(React.Component); + +if (process.env.NODE_ENV !== "production") { + Route.propTypes = { + children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]), + component: function component(props, propName) { + if (props[propName] && !isValidElementType(props[propName])) { + return new Error("Invalid prop 'component' supplied to 'Route': the prop is not a valid React component"); + } + }, + exact: PropTypes.bool, + location: PropTypes.object, + path: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), + render: PropTypes.func, + sensitive: PropTypes.bool, + strict: PropTypes.bool + }; + + Route.prototype.componentDidMount = function () { + process.env.NODE_ENV !== "production" ? warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.component), "You should not use and in the same route; will be ignored") : void 0; + process.env.NODE_ENV !== "production" ? warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.render), "You should not use and in the same route; will be ignored") : void 0; + process.env.NODE_ENV !== "production" ? warning(!(this.props.component && this.props.render), "You should not use and in the same route; will be ignored") : void 0; + }; + + Route.prototype.componentDidUpdate = function (prevProps) { + process.env.NODE_ENV !== "production" ? warning(!(this.props.location && !prevProps.location), ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no "location" prop and then provided one on a subsequent render.') : void 0; + process.env.NODE_ENV !== "production" ? warning(!(!this.props.location && prevProps.location), ' elements should not change from controlled to uncontrolled (or vice versa). You provided a "location" prop initially but omitted it on a subsequent render.') : void 0; + }; +} + +function addLeadingSlash(path) { + return path.charAt(0) === "/" ? path : "/" + path; +} + +function addBasename(basename, location) { + if (!basename) return location; + return _extends({}, location, { + pathname: addLeadingSlash(basename) + location.pathname + }); +} + +function stripBasename(basename, location) { + if (!basename) return location; + var base = addLeadingSlash(basename); + if (location.pathname.indexOf(base) !== 0) return location; + return _extends({}, location, { + pathname: location.pathname.substr(base.length) + }); +} + +function createURL(location) { + return typeof location === "string" ? location : createPath(location); +} + +function staticHandler(methodName) { + return function () { + process.env.NODE_ENV !== "production" ? invariant(false, "You cannot %s with ", methodName) : invariant(false) ; + }; +} + +function noop() {} +/** + * The public top-level API for a "static" , so-called because it + * can't actually change the current location. Instead, it just records + * location changes in a context object. Useful mainly in testing and + * server-rendering scenarios. + */ + + +var StaticRouter = +/*#__PURE__*/ +function (_React$Component) { + _inheritsLoose(StaticRouter, _React$Component); + + function StaticRouter() { + var _this; + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this; + + _this.handlePush = function (location) { + return _this.navigateTo(location, "PUSH"); + }; + + _this.handleReplace = function (location) { + return _this.navigateTo(location, "REPLACE"); + }; + + _this.handleListen = function () { + return noop; + }; + + _this.handleBlock = function () { + return noop; + }; + + return _this; + } + + var _proto = StaticRouter.prototype; + + _proto.navigateTo = function navigateTo(location, action) { + var _this$props = this.props, + _this$props$basename = _this$props.basename, + basename = _this$props$basename === void 0 ? "" : _this$props$basename, + _this$props$context = _this$props.context, + context = _this$props$context === void 0 ? {} : _this$props$context; + context.action = action; + context.location = addBasename(basename, createLocation(location)); + context.url = createURL(context.location); + }; + + _proto.render = function render() { + var _this$props2 = this.props, + _this$props2$basename = _this$props2.basename, + basename = _this$props2$basename === void 0 ? "" : _this$props2$basename, + _this$props2$context = _this$props2.context, + context = _this$props2$context === void 0 ? {} : _this$props2$context, + _this$props2$location = _this$props2.location, + location = _this$props2$location === void 0 ? "/" : _this$props2$location, + rest = _objectWithoutPropertiesLoose(_this$props2, ["basename", "context", "location"]); + + var history = { + createHref: function createHref(path) { + return addLeadingSlash(basename + createURL(path)); + }, + action: "POP", + location: stripBasename(basename, createLocation(location)), + push: this.handlePush, + replace: this.handleReplace, + go: staticHandler("go"), + goBack: staticHandler("goBack"), + goForward: staticHandler("goForward"), + listen: this.handleListen, + block: this.handleBlock + }; + return React.createElement(Router, _extends({}, rest, { + history: history, + staticContext: context + })); + }; + + return StaticRouter; +}(React.Component); + +if (process.env.NODE_ENV !== "production") { + StaticRouter.propTypes = { + basename: PropTypes.string, + context: PropTypes.object, + location: PropTypes.oneOfType([PropTypes.string, PropTypes.object]) + }; + + StaticRouter.prototype.componentDidMount = function () { + process.env.NODE_ENV !== "production" ? warning(!this.props.history, " ignores the history prop. To use a custom history, " + "use `import { Router }` instead of `import { StaticRouter as Router }`.") : void 0; + }; +} + +/** + * The public API for rendering the first that matches. + */ + +var Switch = +/*#__PURE__*/ +function (_React$Component) { + _inheritsLoose(Switch, _React$Component); + + function Switch() { + return _React$Component.apply(this, arguments) || this; + } + + var _proto = Switch.prototype; + + _proto.render = function render() { + var _this = this; + + return React.createElement(context.Consumer, null, function (context) { + !context ? process.env.NODE_ENV !== "production" ? invariant(false, "You should not use outside a ") : invariant(false) : void 0; + var location = _this.props.location || context.location; + var element, match; // We use React.Children.forEach instead of React.Children.toArray().find() + // here because toArray adds keys to all child elements and we do not want + // to trigger an unmount/remount for two s that render the same + // component at different URLs. + + React.Children.forEach(_this.props.children, function (child) { + if (match == null && React.isValidElement(child)) { + element = child; + var path = child.props.path || child.props.from; + match = path ? matchPath(location.pathname, _extends({}, child.props, { + path: path + })) : context.match; + } + }); + return match ? React.cloneElement(element, { + location: location, + computedMatch: match + }) : null; + }); + }; + + return Switch; +}(React.Component); + +if (process.env.NODE_ENV !== "production") { + Switch.propTypes = { + children: PropTypes.node, + location: PropTypes.object + }; + + Switch.prototype.componentDidUpdate = function (prevProps) { + process.env.NODE_ENV !== "production" ? warning(!(this.props.location && !prevProps.location), ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no "location" prop and then provided one on a subsequent render.') : void 0; + process.env.NODE_ENV !== "production" ? warning(!(!this.props.location && prevProps.location), ' elements should not change from controlled to uncontrolled (or vice versa). You provided a "location" prop initially but omitted it on a subsequent render.') : void 0; + }; +} + +/** + * A public higher-order component to access the imperative API + */ + +function withRouter(Component) { + var displayName = "withRouter(" + (Component.displayName || Component.name) + ")"; + + var C = function C(props) { + var wrappedComponentRef = props.wrappedComponentRef, + remainingProps = _objectWithoutPropertiesLoose(props, ["wrappedComponentRef"]); + + return React.createElement(context.Consumer, null, function (context) { + !context ? process.env.NODE_ENV !== "production" ? invariant(false, "You should not use <" + displayName + " /> outside a ") : invariant(false) : void 0; + return React.createElement(Component, _extends({}, remainingProps, context, { + ref: wrappedComponentRef + })); + }); + }; + + C.displayName = displayName; + C.WrappedComponent = Component; + + if (process.env.NODE_ENV !== "production") { + C.propTypes = { + wrappedComponentRef: PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.object]) + }; + } + + return hoistStatics(C, Component); +} + +var useContext = React.useContext; +function useHistory() { + if (process.env.NODE_ENV !== "production") { + !(typeof useContext === "function") ? process.env.NODE_ENV !== "production" ? invariant(false, "You must use React >= 16.8 in order to use useHistory()") : invariant(false) : void 0; + } + + return useContext(historyContext); +} +function useLocation() { + if (process.env.NODE_ENV !== "production") { + !(typeof useContext === "function") ? process.env.NODE_ENV !== "production" ? invariant(false, "You must use React >= 16.8 in order to use useLocation()") : invariant(false) : void 0; + } + + return useContext(context).location; +} +function useParams() { + if (process.env.NODE_ENV !== "production") { + !(typeof useContext === "function") ? process.env.NODE_ENV !== "production" ? invariant(false, "You must use React >= 16.8 in order to use useParams()") : invariant(false) : void 0; + } + + var match = useContext(context).match; + return match ? match.params : {}; +} +function useRouteMatch(path) { + if (process.env.NODE_ENV !== "production") { + !(typeof useContext === "function") ? process.env.NODE_ENV !== "production" ? invariant(false, "You must use React >= 16.8 in order to use useRouteMatch()") : invariant(false) : void 0; + } + + var location = useLocation(); + var match = useContext(context).match; + return path ? matchPath(location.pathname, path) : match; +} + +if (process.env.NODE_ENV !== "production") { + if (typeof window !== "undefined") { + var global = window; + var key = "__react_router_build__"; + var buildNames = { + cjs: "CommonJS", + esm: "ES modules", + umd: "UMD" + }; + + if (global[key] && global[key] !== "esm") { + var initialBuildName = buildNames[global[key]]; + var secondaryBuildName = buildNames["esm"]; // TODO: Add link to article that explains in detail how to avoid + // loading 2 different builds. + + throw new Error("You are loading the " + secondaryBuildName + " build of React Router " + ("on a page that is already running the " + initialBuildName + " ") + "build, so things won't work right."); + } + + global[key] = "esm"; + } +} + +export { MemoryRouter, Prompt, Redirect, Route, Router, StaticRouter, Switch, historyContext as __HistoryContext, context as __RouterContext, generatePath, matchPath, useHistory, useLocation, useParams, useRouteMatch, withRouter }; +//# sourceMappingURL=react-router.js.map diff --git a/node_modules/react-router/esm/react-router.js.map b/node_modules/react-router/esm/react-router.js.map new file mode 100644 index 0000000..c73e6bf --- /dev/null +++ b/node_modules/react-router/esm/react-router.js.map @@ -0,0 +1 @@ +{"version":3,"file":"react-router.js","sources":["../modules/createNameContext.js","../modules/HistoryContext.js","../modules/RouterContext.js","../modules/Router.js","../modules/MemoryRouter.js","../modules/Lifecycle.js","../modules/Prompt.js","../modules/generatePath.js","../modules/Redirect.js","../modules/matchPath.js","../modules/Route.js","../modules/StaticRouter.js","../modules/Switch.js","../modules/withRouter.js","../modules/hooks.js","../modules/index.js"],"sourcesContent":["// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nexport default createNamedContext;\n","import createNamedContext from \"./createNameContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport HistoryContext from \"./HistoryContext.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n } else {\n this._pendingLocation = location;\n }\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) this.unlisten();\n }\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change \"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\n/**\n * The public API for a that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for prompting the user before navigating away from a screen.\n */\nfunction Prompt({ message, when = true }) {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n if (!when || context.staticContext) return null;\n\n const method = context.history.block;\n\n return (\n {\n self.release = method(message);\n }}\n onUpdate={(self, prevProps) => {\n if (prevProps.message !== message) {\n self.release();\n self.release = method(message);\n }\n }}\n onUnmount={self => {\n self.release();\n }}\n message={message}\n />\n );\n }}\n \n );\n}\n\nif (__DEV__) {\n const messageType = PropTypes.oneOfType([PropTypes.func, PropTypes.string]);\n\n Prompt.propTypes = {\n when: PropTypes.bool,\n message: messageType.isRequired\n };\n}\n\nexport default Prompt;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n\n const generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\nfunction generatePath(path = \"/\", params = {}) {\n return path === \"/\" ? path : compilePath(path)(params, { pretty: true });\n}\n\nexport default generatePath;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, locationsAreEqual } from \"history\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle.js\";\nimport RouterContext from \"./RouterContext.js\";\nimport generatePath from \"./generatePath.js\";\n\n/**\n * The public API for navigating programmatically with a component.\n */\nfunction Redirect({ computedMatch, to, push = false }) {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history, staticContext } = context;\n\n const method = push ? history.push : history.replace;\n const location = createLocation(\n computedMatch\n ? typeof to === \"string\"\n ? generatePath(to, computedMatch.params)\n : {\n ...to,\n pathname: generatePath(to.pathname, computedMatch.params)\n }\n : to\n );\n\n // When rendering in a static context,\n // set the new location immediately.\n if (staticContext) {\n method(location);\n return null;\n }\n\n return (\n {\n method(location);\n }}\n onUpdate={(self, prevProps) => {\n const prevLocation = createLocation(prevProps.to);\n if (\n !locationsAreEqual(prevLocation, {\n ...location,\n key: prevLocation.key\n })\n ) {\n method(location);\n }\n }}\n to={to}\n />\n );\n }}\n \n );\n}\n\nif (__DEV__) {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nexport default Redirect;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && children.length === 0) {\n children = null;\n }\n\n return (\n \n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n \n );\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use and in the same route; will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with \", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return ;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\n/**\n * The public API for rendering the first that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport hoistStatics from \"hoist-non-react-statics\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * A public higher-order component to access the imperative API\n */\nfunction withRouter(Component) {\n const displayName = `withRouter(${Component.displayName || Component.name})`;\n const C = props => {\n const { wrappedComponentRef, ...remainingProps } = props;\n\n return (\n \n {context => {\n invariant(\n context,\n `You should not use <${displayName} /> outside a `\n );\n return (\n \n );\n }}\n \n );\n };\n\n C.displayName = displayName;\n C.WrappedComponent = Component;\n\n if (__DEV__) {\n C.propTypes = {\n wrappedComponentRef: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.object\n ])\n };\n }\n\n return hoistStatics(C, Component);\n}\n\nexport default withRouter;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport Context from \"./RouterContext.js\";\nimport HistoryContext from \"./HistoryContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(HistoryContext);\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(Context).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(Context).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n const location = useLocation();\n const match = useContext(Context).match;\n\n return path ? matchPath(location.pathname, path) : match;\n}\n","if (__DEV__) {\n if (typeof window !== \"undefined\") {\n const global = window;\n const key = \"__react_router_build__\";\n const buildNames = { cjs: \"CommonJS\", esm: \"ES modules\", umd: \"UMD\" };\n\n if (global[key] && global[key] !== process.env.BUILD_FORMAT) {\n const initialBuildName = buildNames[global[key]];\n const secondaryBuildName = buildNames[process.env.BUILD_FORMAT];\n\n // TODO: Add link to article that explains in detail how to avoid\n // loading 2 different builds.\n throw new Error(\n `You are loading the ${secondaryBuildName} build of React Router ` +\n `on a page that is already running the ${initialBuildName} ` +\n `build, so things won't work right.`\n );\n }\n\n global[key] = process.env.BUILD_FORMAT;\n }\n}\n\nexport { default as MemoryRouter } from \"./MemoryRouter.js\";\nexport { default as Prompt } from \"./Prompt.js\";\nexport { default as Redirect } from \"./Redirect.js\";\nexport { default as Route } from \"./Route.js\";\nexport { default as Router } from \"./Router.js\";\nexport { default as StaticRouter } from \"./StaticRouter.js\";\nexport { default as Switch } from \"./Switch.js\";\nexport { default as generatePath } from \"./generatePath.js\";\nexport { default as matchPath } from \"./matchPath.js\";\nexport { default as withRouter } from \"./withRouter.js\";\n\nimport { useHistory, useLocation, useParams, useRouteMatch } from \"./hooks.js\";\nexport { useHistory, useLocation, useParams, useRouteMatch };\n\nexport { default as __HistoryContext } from \"./HistoryContext.js\";\nexport { default as __RouterContext } from \"./RouterContext.js\";\n"],"names":["createNamedContext","name","context","createContext","displayName","historyContext","Router","computeRootMatch","pathname","path","url","params","isExact","props","state","location","history","_isMounted","_pendingLocation","staticContext","unlisten","listen","setState","componentDidMount","componentWillUnmount","render","RouterContext","match","HistoryContext","children","React","Component","propTypes","PropTypes","node","object","isRequired","prototype","componentDidUpdate","prevProps","warning","MemoryRouter","createHistory","initialEntries","array","initialIndex","number","getUserConfirmation","func","keyLength","Lifecycle","onMount","call","onUpdate","onUnmount","Prompt","message","when","invariant","method","block","self","release","messageType","oneOfType","string","bool","cache","cacheLimit","cacheCount","compilePath","generator","pathToRegexp","compile","generatePath","pretty","Redirect","computedMatch","to","push","replace","createLocation","prevLocation","locationsAreEqual","key","from","options","cacheKey","end","strict","sensitive","pathCache","keys","regexp","result","matchPath","Array","isArray","exact","paths","concat","reduce","matched","exec","values","memo","index","isEmptyChildren","Children","count","evalChildrenDev","value","undefined","Route","component","length","createElement","propName","isValidElementType","Error","arrayOf","addLeadingSlash","charAt","addBasename","basename","stripBasename","base","indexOf","substr","createURL","createPath","staticHandler","methodName","noop","StaticRouter","handlePush","navigateTo","handleReplace","handleListen","handleBlock","action","rest","createHref","go","goBack","goForward","Switch","element","forEach","child","isValidElement","cloneElement","withRouter","C","wrappedComponentRef","remainingProps","WrappedComponent","hoistStatics","useContext","useHistory","useLocation","Context","useParams","useRouteMatch","window","global","buildNames","cjs","esm","umd","process","initialBuildName","secondaryBuildName"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/react-router/generatePath.js b/node_modules/react-router/generatePath.js new file mode 100644 index 0000000..d487dd2 --- /dev/null +++ b/node_modules/react-router/generatePath.js @@ -0,0 +1,3 @@ +"use strict"; +require("./warnAboutDeprecatedCJSRequire")("generatePath"); +module.exports = require("./index.js").generatePath; diff --git a/node_modules/react-router/index.js b/node_modules/react-router/index.js new file mode 100644 index 0000000..3ebff74 --- /dev/null +++ b/node_modules/react-router/index.js @@ -0,0 +1,7 @@ +"use strict"; + +if (process.env.NODE_ENV === "production") { + module.exports = require("./cjs/react-router.min.js"); +} else { + module.exports = require("./cjs/react-router.js"); +} diff --git a/node_modules/react-router/matchPath.js b/node_modules/react-router/matchPath.js new file mode 100644 index 0000000..6d1fe33 --- /dev/null +++ b/node_modules/react-router/matchPath.js @@ -0,0 +1,3 @@ +"use strict"; +require("./warnAboutDeprecatedCJSRequire")("matchPath"); +module.exports = require("./index.js").matchPath; diff --git a/node_modules/react-router/modules/HistoryContext.js b/node_modules/react-router/modules/HistoryContext.js new file mode 100644 index 0000000..3972fca --- /dev/null +++ b/node_modules/react-router/modules/HistoryContext.js @@ -0,0 +1,4 @@ +import createNamedContext from "./createNameContext"; + +const historyContext = /*#__PURE__*/ createNamedContext("Router-History"); +export default historyContext; diff --git a/node_modules/react-router/modules/Lifecycle.js b/node_modules/react-router/modules/Lifecycle.js new file mode 100644 index 0000000..a672c0e --- /dev/null +++ b/node_modules/react-router/modules/Lifecycle.js @@ -0,0 +1,21 @@ +import React from "react"; + +class Lifecycle extends React.Component { + componentDidMount() { + if (this.props.onMount) this.props.onMount.call(this, this); + } + + componentDidUpdate(prevProps) { + if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps); + } + + componentWillUnmount() { + if (this.props.onUnmount) this.props.onUnmount.call(this, this); + } + + render() { + return null; + } +} + +export default Lifecycle; diff --git a/node_modules/react-router/modules/MemoryRouter.js b/node_modules/react-router/modules/MemoryRouter.js new file mode 100644 index 0000000..22f337f --- /dev/null +++ b/node_modules/react-router/modules/MemoryRouter.js @@ -0,0 +1,37 @@ +import React from "react"; +import PropTypes from "prop-types"; +import { createMemoryHistory as createHistory } from "history"; +import warning from "tiny-warning"; + +import Router from "./Router.js"; + +/** + * The public API for a that stores location in memory. + */ +class MemoryRouter extends React.Component { + history = createHistory(this.props); + + render() { + return ; + } +} + +if (__DEV__) { + MemoryRouter.propTypes = { + initialEntries: PropTypes.array, + initialIndex: PropTypes.number, + getUserConfirmation: PropTypes.func, + keyLength: PropTypes.number, + children: PropTypes.node + }; + + MemoryRouter.prototype.componentDidMount = function() { + warning( + !this.props.history, + " ignores the history prop. To use a custom history, " + + "use `import { Router }` instead of `import { MemoryRouter as Router }`." + ); + }; +} + +export default MemoryRouter; diff --git a/node_modules/react-router/modules/Prompt.js b/node_modules/react-router/modules/Prompt.js new file mode 100644 index 0000000..5ddfb8a --- /dev/null +++ b/node_modules/react-router/modules/Prompt.js @@ -0,0 +1,52 @@ +import React from "react"; +import PropTypes from "prop-types"; +import invariant from "tiny-invariant"; + +import Lifecycle from "./Lifecycle.js"; +import RouterContext from "./RouterContext.js"; + +/** + * The public API for prompting the user before navigating away from a screen. + */ +function Prompt({ message, when = true }) { + return ( + + {context => { + invariant(context, "You should not use outside a "); + + if (!when || context.staticContext) return null; + + const method = context.history.block; + + return ( + { + self.release = method(message); + }} + onUpdate={(self, prevProps) => { + if (prevProps.message !== message) { + self.release(); + self.release = method(message); + } + }} + onUnmount={self => { + self.release(); + }} + message={message} + /> + ); + }} + + ); +} + +if (__DEV__) { + const messageType = PropTypes.oneOfType([PropTypes.func, PropTypes.string]); + + Prompt.propTypes = { + when: PropTypes.bool, + message: messageType.isRequired + }; +} + +export default Prompt; diff --git a/node_modules/react-router/modules/Redirect.js b/node_modules/react-router/modules/Redirect.js new file mode 100644 index 0000000..a2799a2 --- /dev/null +++ b/node_modules/react-router/modules/Redirect.js @@ -0,0 +1,72 @@ +import React from "react"; +import PropTypes from "prop-types"; +import { createLocation, locationsAreEqual } from "history"; +import invariant from "tiny-invariant"; + +import Lifecycle from "./Lifecycle.js"; +import RouterContext from "./RouterContext.js"; +import generatePath from "./generatePath.js"; + +/** + * The public API for navigating programmatically with a component. + */ +function Redirect({ computedMatch, to, push = false }) { + return ( + + {context => { + invariant(context, "You should not use outside a "); + + const { history, staticContext } = context; + + const method = push ? history.push : history.replace; + const location = createLocation( + computedMatch + ? typeof to === "string" + ? generatePath(to, computedMatch.params) + : { + ...to, + pathname: generatePath(to.pathname, computedMatch.params) + } + : to + ); + + // When rendering in a static context, + // set the new location immediately. + if (staticContext) { + method(location); + return null; + } + + return ( + { + method(location); + }} + onUpdate={(self, prevProps) => { + const prevLocation = createLocation(prevProps.to); + if ( + !locationsAreEqual(prevLocation, { + ...location, + key: prevLocation.key + }) + ) { + method(location); + } + }} + to={to} + /> + ); + }} + + ); +} + +if (__DEV__) { + Redirect.propTypes = { + push: PropTypes.bool, + from: PropTypes.string, + to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired + }; +} + +export default Redirect; diff --git a/node_modules/react-router/modules/Route.js b/node_modules/react-router/modules/Route.js new file mode 100644 index 0000000..b35fae6 --- /dev/null +++ b/node_modules/react-router/modules/Route.js @@ -0,0 +1,140 @@ +import React from "react"; +import { isValidElementType } from "react-is"; +import PropTypes from "prop-types"; +import invariant from "tiny-invariant"; +import warning from "tiny-warning"; + +import RouterContext from "./RouterContext.js"; +import matchPath from "./matchPath.js"; + +function isEmptyChildren(children) { + return React.Children.count(children) === 0; +} + +function evalChildrenDev(children, props, path) { + const value = children(props); + + warning( + value !== undefined, + "You returned `undefined` from the `children` function of " + + `, but you ` + + "should have returned a React element or `null`" + ); + + return value || null; +} + +/** + * The public API for matching a single path and rendering. + */ +class Route extends React.Component { + render() { + return ( + + {context => { + invariant(context, "You should not use outside a "); + + const location = this.props.location || context.location; + const match = this.props.computedMatch + ? this.props.computedMatch // already computed the match for us + : this.props.path + ? matchPath(location.pathname, this.props) + : context.match; + + const props = { ...context, location, match }; + + let { children, component, render } = this.props; + + // Preact uses an empty array as children by + // default, so use null if that's the case. + if (Array.isArray(children) && children.length === 0) { + children = null; + } + + return ( + + {props.match + ? children + ? typeof children === "function" + ? __DEV__ + ? evalChildrenDev(children, props, this.props.path) + : children(props) + : children + : component + ? React.createElement(component, props) + : render + ? render(props) + : null + : typeof children === "function" + ? __DEV__ + ? evalChildrenDev(children, props, this.props.path) + : children(props) + : null} + + ); + }} + + ); + } +} + +if (__DEV__) { + Route.propTypes = { + children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]), + component: (props, propName) => { + if (props[propName] && !isValidElementType(props[propName])) { + return new Error( + `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component` + ); + } + }, + exact: PropTypes.bool, + location: PropTypes.object, + path: PropTypes.oneOfType([ + PropTypes.string, + PropTypes.arrayOf(PropTypes.string) + ]), + render: PropTypes.func, + sensitive: PropTypes.bool, + strict: PropTypes.bool + }; + + Route.prototype.componentDidMount = function() { + warning( + !( + this.props.children && + !isEmptyChildren(this.props.children) && + this.props.component + ), + "You should not use and in the same route; will be ignored" + ); + + warning( + !( + this.props.children && + !isEmptyChildren(this.props.children) && + this.props.render + ), + "You should not use and in the same route; will be ignored" + ); + + warning( + !(this.props.component && this.props.render), + "You should not use and in the same route; will be ignored" + ); + }; + + Route.prototype.componentDidUpdate = function(prevProps) { + warning( + !(this.props.location && !prevProps.location), + ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no "location" prop and then provided one on a subsequent render.' + ); + + warning( + !(!this.props.location && prevProps.location), + ' elements should not change from controlled to uncontrolled (or vice versa). You provided a "location" prop initially but omitted it on a subsequent render.' + ); + }; +} + +export default Route; diff --git a/node_modules/react-router/modules/Router.js b/node_modules/react-router/modules/Router.js new file mode 100644 index 0000000..bf87ad2 --- /dev/null +++ b/node_modules/react-router/modules/Router.js @@ -0,0 +1,88 @@ +import React from "react"; +import PropTypes from "prop-types"; +import warning from "tiny-warning"; + +import HistoryContext from "./HistoryContext.js"; +import RouterContext from "./RouterContext.js"; + +/** + * The public API for putting history on context. + */ +class Router extends React.Component { + static computeRootMatch(pathname) { + return { path: "/", url: "/", params: {}, isExact: pathname === "/" }; + } + + constructor(props) { + super(props); + + this.state = { + location: props.history.location + }; + + // This is a bit of a hack. We have to start listening for location + // changes here in the constructor in case there are any s + // on the initial render. If there are, they will replace/push when + // they mount and since cDM fires in children before parents, we may + // get a new location before the is mounted. + this._isMounted = false; + this._pendingLocation = null; + + if (!props.staticContext) { + this.unlisten = props.history.listen(location => { + if (this._isMounted) { + this.setState({ location }); + } else { + this._pendingLocation = location; + } + }); + } + } + + componentDidMount() { + this._isMounted = true; + + if (this._pendingLocation) { + this.setState({ location: this._pendingLocation }); + } + } + + componentWillUnmount() { + if (this.unlisten) this.unlisten(); + } + + render() { + return ( + + + + ); + } +} + +if (__DEV__) { + Router.propTypes = { + children: PropTypes.node, + history: PropTypes.object.isRequired, + staticContext: PropTypes.object + }; + + Router.prototype.componentDidUpdate = function(prevProps) { + warning( + prevProps.history === this.props.history, + "You cannot change " + ); + }; +} + +export default Router; diff --git a/node_modules/react-router/modules/RouterContext.js b/node_modules/react-router/modules/RouterContext.js new file mode 100644 index 0000000..6a79df7 --- /dev/null +++ b/node_modules/react-router/modules/RouterContext.js @@ -0,0 +1,12 @@ +// TODO: Replace with React.createContext once we can assume React 16+ +import createContext from "mini-create-react-context"; + +const createNamedContext = name => { + const context = createContext(); + context.displayName = name; + + return context; +}; + +const context = /*#__PURE__*/ createNamedContext("Router"); +export default context; diff --git a/node_modules/react-router/modules/StaticRouter.js b/node_modules/react-router/modules/StaticRouter.js new file mode 100644 index 0000000..4edafaa --- /dev/null +++ b/node_modules/react-router/modules/StaticRouter.js @@ -0,0 +1,102 @@ +import React from "react"; +import PropTypes from "prop-types"; +import { createLocation, createPath } from "history"; +import invariant from "tiny-invariant"; +import warning from "tiny-warning"; + +import Router from "./Router.js"; + +function addLeadingSlash(path) { + return path.charAt(0) === "/" ? path : "/" + path; +} + +function addBasename(basename, location) { + if (!basename) return location; + + return { + ...location, + pathname: addLeadingSlash(basename) + location.pathname + }; +} + +function stripBasename(basename, location) { + if (!basename) return location; + + const base = addLeadingSlash(basename); + + if (location.pathname.indexOf(base) !== 0) return location; + + return { + ...location, + pathname: location.pathname.substr(base.length) + }; +} + +function createURL(location) { + return typeof location === "string" ? location : createPath(location); +} + +function staticHandler(methodName) { + return () => { + invariant(false, "You cannot %s with ", methodName); + }; +} + +function noop() {} + +/** + * The public top-level API for a "static" , so-called because it + * can't actually change the current location. Instead, it just records + * location changes in a context object. Useful mainly in testing and + * server-rendering scenarios. + */ +class StaticRouter extends React.Component { + navigateTo(location, action) { + const { basename = "", context = {} } = this.props; + context.action = action; + context.location = addBasename(basename, createLocation(location)); + context.url = createURL(context.location); + } + + handlePush = location => this.navigateTo(location, "PUSH"); + handleReplace = location => this.navigateTo(location, "REPLACE"); + handleListen = () => noop; + handleBlock = () => noop; + + render() { + const { basename = "", context = {}, location = "/", ...rest } = this.props; + + const history = { + createHref: path => addLeadingSlash(basename + createURL(path)), + action: "POP", + location: stripBasename(basename, createLocation(location)), + push: this.handlePush, + replace: this.handleReplace, + go: staticHandler("go"), + goBack: staticHandler("goBack"), + goForward: staticHandler("goForward"), + listen: this.handleListen, + block: this.handleBlock + }; + + return ; + } +} + +if (__DEV__) { + StaticRouter.propTypes = { + basename: PropTypes.string, + context: PropTypes.object, + location: PropTypes.oneOfType([PropTypes.string, PropTypes.object]) + }; + + StaticRouter.prototype.componentDidMount = function() { + warning( + !this.props.history, + " ignores the history prop. To use a custom history, " + + "use `import { Router }` instead of `import { StaticRouter as Router }`." + ); + }; +} + +export default StaticRouter; diff --git a/node_modules/react-router/modules/Switch.js b/node_modules/react-router/modules/Switch.js new file mode 100644 index 0000000..3033276 --- /dev/null +++ b/node_modules/react-router/modules/Switch.js @@ -0,0 +1,67 @@ +import React from "react"; +import PropTypes from "prop-types"; +import invariant from "tiny-invariant"; +import warning from "tiny-warning"; + +import RouterContext from "./RouterContext.js"; +import matchPath from "./matchPath.js"; + +/** + * The public API for rendering the first that matches. + */ +class Switch extends React.Component { + render() { + return ( + + {context => { + invariant(context, "You should not use outside a "); + + const location = this.props.location || context.location; + + let element, match; + + // We use React.Children.forEach instead of React.Children.toArray().find() + // here because toArray adds keys to all child elements and we do not want + // to trigger an unmount/remount for two s that render the same + // component at different URLs. + React.Children.forEach(this.props.children, child => { + if (match == null && React.isValidElement(child)) { + element = child; + + const path = child.props.path || child.props.from; + + match = path + ? matchPath(location.pathname, { ...child.props, path }) + : context.match; + } + }); + + return match + ? React.cloneElement(element, { location, computedMatch: match }) + : null; + }} + + ); + } +} + +if (__DEV__) { + Switch.propTypes = { + children: PropTypes.node, + location: PropTypes.object + }; + + Switch.prototype.componentDidUpdate = function(prevProps) { + warning( + !(this.props.location && !prevProps.location), + ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no "location" prop and then provided one on a subsequent render.' + ); + + warning( + !(!this.props.location && prevProps.location), + ' elements should not change from controlled to uncontrolled (or vice versa). You provided a "location" prop initially but omitted it on a subsequent render.' + ); + }; +} + +export default Switch; diff --git a/node_modules/react-router/modules/createNameContext.js b/node_modules/react-router/modules/createNameContext.js new file mode 100644 index 0000000..36e1baa --- /dev/null +++ b/node_modules/react-router/modules/createNameContext.js @@ -0,0 +1,11 @@ +// TODO: Replace with React.createContext once we can assume React 16+ +import createContext from "mini-create-react-context"; + +const createNamedContext = name => { + const context = createContext(); + context.displayName = name; + + return context; +}; + +export default createNamedContext; diff --git a/node_modules/react-router/modules/generatePath.js b/node_modules/react-router/modules/generatePath.js new file mode 100644 index 0000000..eba97a1 --- /dev/null +++ b/node_modules/react-router/modules/generatePath.js @@ -0,0 +1,27 @@ +import pathToRegexp from "path-to-regexp"; + +const cache = {}; +const cacheLimit = 10000; +let cacheCount = 0; + +function compilePath(path) { + if (cache[path]) return cache[path]; + + const generator = pathToRegexp.compile(path); + + if (cacheCount < cacheLimit) { + cache[path] = generator; + cacheCount++; + } + + return generator; +} + +/** + * Public API for generating a URL pathname from a path and parameters. + */ +function generatePath(path = "/", params = {}) { + return path === "/" ? path : compilePath(path)(params, { pretty: true }); +} + +export default generatePath; diff --git a/node_modules/react-router/modules/hooks.js b/node_modules/react-router/modules/hooks.js new file mode 100644 index 0000000..a65543b --- /dev/null +++ b/node_modules/react-router/modules/hooks.js @@ -0,0 +1,56 @@ +import React from "react"; +import invariant from "tiny-invariant"; + +import Context from "./RouterContext.js"; +import HistoryContext from "./HistoryContext.js"; +import matchPath from "./matchPath.js"; + +const useContext = React.useContext; + +export function useHistory() { + if (__DEV__) { + invariant( + typeof useContext === "function", + "You must use React >= 16.8 in order to use useHistory()" + ); + } + + return useContext(HistoryContext); +} + +export function useLocation() { + if (__DEV__) { + invariant( + typeof useContext === "function", + "You must use React >= 16.8 in order to use useLocation()" + ); + } + + return useContext(Context).location; +} + +export function useParams() { + if (__DEV__) { + invariant( + typeof useContext === "function", + "You must use React >= 16.8 in order to use useParams()" + ); + } + + const match = useContext(Context).match; + return match ? match.params : {}; +} + +export function useRouteMatch(path) { + if (__DEV__) { + invariant( + typeof useContext === "function", + "You must use React >= 16.8 in order to use useRouteMatch()" + ); + } + + const location = useLocation(); + const match = useContext(Context).match; + + return path ? matchPath(location.pathname, path) : match; +} diff --git a/node_modules/react-router/modules/index.js b/node_modules/react-router/modules/index.js new file mode 100644 index 0000000..1ca8537 --- /dev/null +++ b/node_modules/react-router/modules/index.js @@ -0,0 +1,39 @@ +if (__DEV__) { + if (typeof window !== "undefined") { + const global = window; + const key = "__react_router_build__"; + const buildNames = { cjs: "CommonJS", esm: "ES modules", umd: "UMD" }; + + if (global[key] && global[key] !== process.env.BUILD_FORMAT) { + const initialBuildName = buildNames[global[key]]; + const secondaryBuildName = buildNames[process.env.BUILD_FORMAT]; + + // TODO: Add link to article that explains in detail how to avoid + // loading 2 different builds. + throw new Error( + `You are loading the ${secondaryBuildName} build of React Router ` + + `on a page that is already running the ${initialBuildName} ` + + `build, so things won't work right.` + ); + } + + global[key] = process.env.BUILD_FORMAT; + } +} + +export { default as MemoryRouter } from "./MemoryRouter.js"; +export { default as Prompt } from "./Prompt.js"; +export { default as Redirect } from "./Redirect.js"; +export { default as Route } from "./Route.js"; +export { default as Router } from "./Router.js"; +export { default as StaticRouter } from "./StaticRouter.js"; +export { default as Switch } from "./Switch.js"; +export { default as generatePath } from "./generatePath.js"; +export { default as matchPath } from "./matchPath.js"; +export { default as withRouter } from "./withRouter.js"; + +import { useHistory, useLocation, useParams, useRouteMatch } from "./hooks.js"; +export { useHistory, useLocation, useParams, useRouteMatch }; + +export { default as __HistoryContext } from "./HistoryContext.js"; +export { default as __RouterContext } from "./RouterContext.js"; diff --git a/node_modules/react-router/modules/matchPath.js b/node_modules/react-router/modules/matchPath.js new file mode 100644 index 0000000..4d5b475 --- /dev/null +++ b/node_modules/react-router/modules/matchPath.js @@ -0,0 +1,67 @@ +import pathToRegexp from "path-to-regexp"; + +const cache = {}; +const cacheLimit = 10000; +let cacheCount = 0; + +function compilePath(path, options) { + const cacheKey = `${options.end}${options.strict}${options.sensitive}`; + const pathCache = cache[cacheKey] || (cache[cacheKey] = {}); + + if (pathCache[path]) return pathCache[path]; + + const keys = []; + const regexp = pathToRegexp(path, keys, options); + const result = { regexp, keys }; + + if (cacheCount < cacheLimit) { + pathCache[path] = result; + cacheCount++; + } + + return result; +} + +/** + * Public API for matching a URL pathname to a path. + */ +function matchPath(pathname, options = {}) { + if (typeof options === "string" || Array.isArray(options)) { + options = { path: options }; + } + + const { path, exact = false, strict = false, sensitive = false } = options; + + const paths = [].concat(path); + + return paths.reduce((matched, path) => { + if (!path && path !== "") return null; + if (matched) return matched; + + const { regexp, keys } = compilePath(path, { + end: exact, + strict, + sensitive + }); + const match = regexp.exec(pathname); + + if (!match) return null; + + const [url, ...values] = match; + const isExact = pathname === url; + + if (exact && !isExact) return null; + + return { + path, // the path used to match + url: path === "/" && url === "" ? "/" : url, // the matched portion of the URL + isExact, // whether or not we matched exactly + params: keys.reduce((memo, key, index) => { + memo[key.name] = values[index]; + return memo; + }, {}) + }; + }, null); +} + +export default matchPath; diff --git a/node_modules/react-router/modules/withRouter.js b/node_modules/react-router/modules/withRouter.js new file mode 100644 index 0000000..4536ab2 --- /dev/null +++ b/node_modules/react-router/modules/withRouter.js @@ -0,0 +1,51 @@ +import React from "react"; +import PropTypes from "prop-types"; +import hoistStatics from "hoist-non-react-statics"; +import invariant from "tiny-invariant"; + +import RouterContext from "./RouterContext.js"; + +/** + * A public higher-order component to access the imperative API + */ +function withRouter(Component) { + const displayName = `withRouter(${Component.displayName || Component.name})`; + const C = props => { + const { wrappedComponentRef, ...remainingProps } = props; + + return ( + + {context => { + invariant( + context, + `You should not use <${displayName} /> outside a ` + ); + return ( + + ); + }} + + ); + }; + + C.displayName = displayName; + C.WrappedComponent = Component; + + if (__DEV__) { + C.propTypes = { + wrappedComponentRef: PropTypes.oneOfType([ + PropTypes.string, + PropTypes.func, + PropTypes.object + ]) + }; + } + + return hoistStatics(C, Component); +} + +export default withRouter; diff --git a/node_modules/react-router/package.json b/node_modules/react-router/package.json new file mode 100644 index 0000000..6b0200b --- /dev/null +++ b/node_modules/react-router/package.json @@ -0,0 +1,99 @@ +{ + "_from": "react-router@5.2.0", + "_id": "react-router@5.2.0", + "_inBundle": false, + "_integrity": "sha512-smz1DUuFHRKdcJC0jobGo8cVbhO3x50tCL4icacOlcwDOEQPq4TMqwx3sY1TP+DvtTgz4nm3thuo7A+BK2U0Dw==", + "_location": "/react-router", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "react-router@5.2.0", + "name": "react-router", + "escapedName": "react-router", + "rawSpec": "5.2.0", + "saveSpec": null, + "fetchSpec": "5.2.0" + }, + "_requiredBy": [ + "/react-router-dom" + ], + "_resolved": "https://registry.npmjs.org/react-router/-/react-router-5.2.0.tgz", + "_shasum": "424e75641ca8747fbf76e5ecca69781aa37ea293", + "_spec": "react-router@5.2.0", + "_where": "G:\\_comp_\\odsc\\orig\\AllNotes\\node_modules\\react-router-dom", + "author": { + "name": "React Training", + "email": "hello@reacttraining.com" + }, + "browserify": { + "transform": [ + "loose-envify" + ] + }, + "bugs": { + "url": "https://github.com/ReactTraining/react-router/issues" + }, + "bundleDependencies": false, + "dependencies": { + "@babel/runtime": "^7.1.2", + "history": "^4.9.0", + "hoist-non-react-statics": "^3.1.0", + "loose-envify": "^1.3.1", + "mini-create-react-context": "^0.4.0", + "path-to-regexp": "^1.7.0", + "prop-types": "^15.6.2", + "react-is": "^16.6.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + }, + "deprecated": false, + "description": "Declarative routing for React", + "files": [ + "MemoryRouter.js", + "Prompt.js", + "Redirect.js", + "Route.js", + "Router.js", + "StaticRouter.js", + "Switch.js", + "cjs", + "es", + "esm", + "index.js", + "generatePath.js", + "matchPath.js", + "modules/*.js", + "modules/utils/*.js", + "withRouter.js", + "warnAboutDeprecatedCJSRequire.js", + "umd" + ], + "gitHead": "21a62e55c0d6196002bd4ab5b3350514976928cf", + "homepage": "https://github.com/ReactTraining/react-router#readme", + "keywords": [ + "react", + "router", + "route", + "routing", + "history", + "link" + ], + "license": "MIT", + "main": "index.js", + "module": "esm/react-router.js", + "name": "react-router", + "peerDependencies": { + "react": ">=15" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/ReactTraining/react-router.git" + }, + "scripts": { + "build": "rollup -c", + "lint": "eslint modules" + }, + "sideEffects": false, + "version": "5.2.0" +} diff --git a/node_modules/react-router/umd/react-router.js b/node_modules/react-router/umd/react-router.js new file mode 100644 index 0000000..795ae72 --- /dev/null +++ b/node_modules/react-router/umd/react-router.js @@ -0,0 +1,3075 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react')) : + typeof define === 'function' && define.amd ? define(['exports', 'react'], factory) : + (global = global || self, factory(global.ReactRouter = {}, global.React)); +}(this, function (exports, React) { 'use strict'; + + var React__default = 'default' in React ? React['default'] : React; + + function _inheritsLoose(subClass, superClass) { + subClass.prototype = Object.create(superClass.prototype); + subClass.prototype.constructor = subClass; + subClass.__proto__ = superClass; + } + + function unwrapExports (x) { + return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x; + } + + function createCommonjsModule(fn, module) { + return module = { exports: {} }, fn(module, module.exports), module.exports; + } + + var reactIs_production_min = createCommonjsModule(function (module, exports) { + Object.defineProperty(exports,"__esModule",{value:!0}); + var b="function"===typeof Symbol&&Symbol.for,c=b?Symbol.for("react.element"):60103,d=b?Symbol.for("react.portal"):60106,e=b?Symbol.for("react.fragment"):60107,f=b?Symbol.for("react.strict_mode"):60108,g=b?Symbol.for("react.profiler"):60114,h=b?Symbol.for("react.provider"):60109,k=b?Symbol.for("react.context"):60110,l=b?Symbol.for("react.async_mode"):60111,m=b?Symbol.for("react.concurrent_mode"):60111,n=b?Symbol.for("react.forward_ref"):60112,p=b?Symbol.for("react.suspense"):60113,q=b?Symbol.for("react.suspense_list"): + 60120,r=b?Symbol.for("react.memo"):60115,t=b?Symbol.for("react.lazy"):60116,v=b?Symbol.for("react.fundamental"):60117,w=b?Symbol.for("react.responder"):60118;function x(a){if("object"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case h:return a;default:return u}}case t:case r:case d:return u}}}function y(a){return x(a)===m}exports.typeOf=x;exports.AsyncMode=l; + exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p; + exports.isValidElementType=function(a){return "string"===typeof a||"function"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||"object"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===v||a.$$typeof===w)};exports.isAsyncMode=function(a){return y(a)||x(a)===l};exports.isConcurrentMode=y;exports.isContextConsumer=function(a){return x(a)===k};exports.isContextProvider=function(a){return x(a)===h}; + exports.isElement=function(a){return "object"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return x(a)===n};exports.isFragment=function(a){return x(a)===e};exports.isLazy=function(a){return x(a)===t};exports.isMemo=function(a){return x(a)===r};exports.isPortal=function(a){return x(a)===d};exports.isProfiler=function(a){return x(a)===g};exports.isStrictMode=function(a){return x(a)===f};exports.isSuspense=function(a){return x(a)===p}; + }); + + unwrapExports(reactIs_production_min); + var reactIs_production_min_1 = reactIs_production_min.typeOf; + var reactIs_production_min_2 = reactIs_production_min.AsyncMode; + var reactIs_production_min_3 = reactIs_production_min.ConcurrentMode; + var reactIs_production_min_4 = reactIs_production_min.ContextConsumer; + var reactIs_production_min_5 = reactIs_production_min.ContextProvider; + var reactIs_production_min_6 = reactIs_production_min.Element; + var reactIs_production_min_7 = reactIs_production_min.ForwardRef; + var reactIs_production_min_8 = reactIs_production_min.Fragment; + var reactIs_production_min_9 = reactIs_production_min.Lazy; + var reactIs_production_min_10 = reactIs_production_min.Memo; + var reactIs_production_min_11 = reactIs_production_min.Portal; + var reactIs_production_min_12 = reactIs_production_min.Profiler; + var reactIs_production_min_13 = reactIs_production_min.StrictMode; + var reactIs_production_min_14 = reactIs_production_min.Suspense; + var reactIs_production_min_15 = reactIs_production_min.isValidElementType; + var reactIs_production_min_16 = reactIs_production_min.isAsyncMode; + var reactIs_production_min_17 = reactIs_production_min.isConcurrentMode; + var reactIs_production_min_18 = reactIs_production_min.isContextConsumer; + var reactIs_production_min_19 = reactIs_production_min.isContextProvider; + var reactIs_production_min_20 = reactIs_production_min.isElement; + var reactIs_production_min_21 = reactIs_production_min.isForwardRef; + var reactIs_production_min_22 = reactIs_production_min.isFragment; + var reactIs_production_min_23 = reactIs_production_min.isLazy; + var reactIs_production_min_24 = reactIs_production_min.isMemo; + var reactIs_production_min_25 = reactIs_production_min.isPortal; + var reactIs_production_min_26 = reactIs_production_min.isProfiler; + var reactIs_production_min_27 = reactIs_production_min.isStrictMode; + var reactIs_production_min_28 = reactIs_production_min.isSuspense; + + var reactIs_development = createCommonjsModule(function (module, exports) { + + + + { + (function() { + + Object.defineProperty(exports, '__esModule', { value: true }); + + // The Symbol used to tag the ReactElement-like types. If there is no native Symbol + // nor polyfill, then a plain number is used for performance. + var hasSymbol = typeof Symbol === 'function' && Symbol.for; + + var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7; + var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca; + var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb; + var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc; + var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2; + var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd; + var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; + // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary + // (unstable) APIs that have been removed. Can we remove the symbols? + var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf; + var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf; + var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0; + var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1; + var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8; + var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3; + var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4; + var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5; + var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6; + + function isValidElementType(type) { + return typeof type === 'string' || typeof type === 'function' || + // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill. + type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE); + } + + /** + * Forked from fbjs/warning: + * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js + * + * Only change is we use console.warn instead of console.error, + * and do nothing when 'console' is not supported. + * This really simplifies the code. + * --- + * Similar to invariant but only logs a warning if the condition is not met. + * This can be used to log issues in development environments in critical + * paths. Removing the logging code for production environments will keep the + * same logic and follow the same code paths. + */ + + var lowPriorityWarning = function () {}; + + { + var printWarning = function (format) { + for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + + var argIndex = 0; + var message = 'Warning: ' + format.replace(/%s/g, function () { + return args[argIndex++]; + }); + if (typeof console !== 'undefined') { + console.warn(message); + } + try { + // --- Welcome to debugging React --- + // This error was thrown as a convenience so that you can use this stack + // to find the callsite that caused this warning to fire. + throw new Error(message); + } catch (x) {} + }; + + lowPriorityWarning = function (condition, format) { + if (format === undefined) { + throw new Error('`lowPriorityWarning(condition, format, ...args)` requires a warning ' + 'message argument'); + } + if (!condition) { + for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) { + args[_key2 - 2] = arguments[_key2]; + } + + printWarning.apply(undefined, [format].concat(args)); + } + }; + } + + var lowPriorityWarning$1 = lowPriorityWarning; + + function typeOf(object) { + if (typeof object === 'object' && object !== null) { + var $$typeof = object.$$typeof; + switch ($$typeof) { + case REACT_ELEMENT_TYPE: + var type = object.type; + + switch (type) { + case REACT_ASYNC_MODE_TYPE: + case REACT_CONCURRENT_MODE_TYPE: + case REACT_FRAGMENT_TYPE: + case REACT_PROFILER_TYPE: + case REACT_STRICT_MODE_TYPE: + case REACT_SUSPENSE_TYPE: + return type; + default: + var $$typeofType = type && type.$$typeof; + + switch ($$typeofType) { + case REACT_CONTEXT_TYPE: + case REACT_FORWARD_REF_TYPE: + case REACT_PROVIDER_TYPE: + return $$typeofType; + default: + return $$typeof; + } + } + case REACT_LAZY_TYPE: + case REACT_MEMO_TYPE: + case REACT_PORTAL_TYPE: + return $$typeof; + } + } + + return undefined; + } + + // AsyncMode is deprecated along with isAsyncMode + var AsyncMode = REACT_ASYNC_MODE_TYPE; + var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE; + var ContextConsumer = REACT_CONTEXT_TYPE; + var ContextProvider = REACT_PROVIDER_TYPE; + var Element = REACT_ELEMENT_TYPE; + var ForwardRef = REACT_FORWARD_REF_TYPE; + var Fragment = REACT_FRAGMENT_TYPE; + var Lazy = REACT_LAZY_TYPE; + var Memo = REACT_MEMO_TYPE; + var Portal = REACT_PORTAL_TYPE; + var Profiler = REACT_PROFILER_TYPE; + var StrictMode = REACT_STRICT_MODE_TYPE; + var Suspense = REACT_SUSPENSE_TYPE; + + var hasWarnedAboutDeprecatedIsAsyncMode = false; + + // AsyncMode should be deprecated + function isAsyncMode(object) { + { + if (!hasWarnedAboutDeprecatedIsAsyncMode) { + hasWarnedAboutDeprecatedIsAsyncMode = true; + lowPriorityWarning$1(false, 'The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.'); + } + } + return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE; + } + function isConcurrentMode(object) { + return typeOf(object) === REACT_CONCURRENT_MODE_TYPE; + } + function isContextConsumer(object) { + return typeOf(object) === REACT_CONTEXT_TYPE; + } + function isContextProvider(object) { + return typeOf(object) === REACT_PROVIDER_TYPE; + } + function isElement(object) { + return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE; + } + function isForwardRef(object) { + return typeOf(object) === REACT_FORWARD_REF_TYPE; + } + function isFragment(object) { + return typeOf(object) === REACT_FRAGMENT_TYPE; + } + function isLazy(object) { + return typeOf(object) === REACT_LAZY_TYPE; + } + function isMemo(object) { + return typeOf(object) === REACT_MEMO_TYPE; + } + function isPortal(object) { + return typeOf(object) === REACT_PORTAL_TYPE; + } + function isProfiler(object) { + return typeOf(object) === REACT_PROFILER_TYPE; + } + function isStrictMode(object) { + return typeOf(object) === REACT_STRICT_MODE_TYPE; + } + function isSuspense(object) { + return typeOf(object) === REACT_SUSPENSE_TYPE; + } + + exports.typeOf = typeOf; + exports.AsyncMode = AsyncMode; + exports.ConcurrentMode = ConcurrentMode; + exports.ContextConsumer = ContextConsumer; + exports.ContextProvider = ContextProvider; + exports.Element = Element; + exports.ForwardRef = ForwardRef; + exports.Fragment = Fragment; + exports.Lazy = Lazy; + exports.Memo = Memo; + exports.Portal = Portal; + exports.Profiler = Profiler; + exports.StrictMode = StrictMode; + exports.Suspense = Suspense; + exports.isValidElementType = isValidElementType; + exports.isAsyncMode = isAsyncMode; + exports.isConcurrentMode = isConcurrentMode; + exports.isContextConsumer = isContextConsumer; + exports.isContextProvider = isContextProvider; + exports.isElement = isElement; + exports.isForwardRef = isForwardRef; + exports.isFragment = isFragment; + exports.isLazy = isLazy; + exports.isMemo = isMemo; + exports.isPortal = isPortal; + exports.isProfiler = isProfiler; + exports.isStrictMode = isStrictMode; + exports.isSuspense = isSuspense; + })(); + } + }); + + unwrapExports(reactIs_development); + var reactIs_development_1 = reactIs_development.typeOf; + var reactIs_development_2 = reactIs_development.AsyncMode; + var reactIs_development_3 = reactIs_development.ConcurrentMode; + var reactIs_development_4 = reactIs_development.ContextConsumer; + var reactIs_development_5 = reactIs_development.ContextProvider; + var reactIs_development_6 = reactIs_development.Element; + var reactIs_development_7 = reactIs_development.ForwardRef; + var reactIs_development_8 = reactIs_development.Fragment; + var reactIs_development_9 = reactIs_development.Lazy; + var reactIs_development_10 = reactIs_development.Memo; + var reactIs_development_11 = reactIs_development.Portal; + var reactIs_development_12 = reactIs_development.Profiler; + var reactIs_development_13 = reactIs_development.StrictMode; + var reactIs_development_14 = reactIs_development.Suspense; + var reactIs_development_15 = reactIs_development.isValidElementType; + var reactIs_development_16 = reactIs_development.isAsyncMode; + var reactIs_development_17 = reactIs_development.isConcurrentMode; + var reactIs_development_18 = reactIs_development.isContextConsumer; + var reactIs_development_19 = reactIs_development.isContextProvider; + var reactIs_development_20 = reactIs_development.isElement; + var reactIs_development_21 = reactIs_development.isForwardRef; + var reactIs_development_22 = reactIs_development.isFragment; + var reactIs_development_23 = reactIs_development.isLazy; + var reactIs_development_24 = reactIs_development.isMemo; + var reactIs_development_25 = reactIs_development.isPortal; + var reactIs_development_26 = reactIs_development.isProfiler; + var reactIs_development_27 = reactIs_development.isStrictMode; + var reactIs_development_28 = reactIs_development.isSuspense; + + var reactIs = createCommonjsModule(function (module) { + + { + module.exports = reactIs_development; + } + }); + var reactIs_1 = reactIs.isValidElementType; + + /* + object-assign + (c) Sindre Sorhus + @license MIT + */ + /* eslint-disable no-unused-vars */ + var getOwnPropertySymbols = Object.getOwnPropertySymbols; + var hasOwnProperty = Object.prototype.hasOwnProperty; + var propIsEnumerable = Object.prototype.propertyIsEnumerable; + + function toObject(val) { + if (val === null || val === undefined) { + throw new TypeError('Object.assign cannot be called with null or undefined'); + } + + return Object(val); + } + + function shouldUseNative() { + try { + if (!Object.assign) { + return false; + } + + // Detect buggy property enumeration order in older V8 versions. + + // https://bugs.chromium.org/p/v8/issues/detail?id=4118 + var test1 = new String('abc'); // eslint-disable-line no-new-wrappers + test1[5] = 'de'; + if (Object.getOwnPropertyNames(test1)[0] === '5') { + return false; + } + + // https://bugs.chromium.org/p/v8/issues/detail?id=3056 + var test2 = {}; + for (var i = 0; i < 10; i++) { + test2['_' + String.fromCharCode(i)] = i; + } + var order2 = Object.getOwnPropertyNames(test2).map(function (n) { + return test2[n]; + }); + if (order2.join('') !== '0123456789') { + return false; + } + + // https://bugs.chromium.org/p/v8/issues/detail?id=3056 + var test3 = {}; + 'abcdefghijklmnopqrst'.split('').forEach(function (letter) { + test3[letter] = letter; + }); + if (Object.keys(Object.assign({}, test3)).join('') !== + 'abcdefghijklmnopqrst') { + return false; + } + + return true; + } catch (err) { + // We don't expect any of the above to throw, but better to be safe. + return false; + } + } + + var objectAssign = shouldUseNative() ? Object.assign : function (target, source) { + var from; + var to = toObject(target); + var symbols; + + for (var s = 1; s < arguments.length; s++) { + from = Object(arguments[s]); + + for (var key in from) { + if (hasOwnProperty.call(from, key)) { + to[key] = from[key]; + } + } + + if (getOwnPropertySymbols) { + symbols = getOwnPropertySymbols(from); + for (var i = 0; i < symbols.length; i++) { + if (propIsEnumerable.call(from, symbols[i])) { + to[symbols[i]] = from[symbols[i]]; + } + } + } + } + + return to; + }; + + /** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + + var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; + + var ReactPropTypesSecret_1 = ReactPropTypesSecret; + + var printWarning = function() {}; + + { + var ReactPropTypesSecret$1 = ReactPropTypesSecret_1; + var loggedTypeFailures = {}; + var has = Function.call.bind(Object.prototype.hasOwnProperty); + + printWarning = function(text) { + var message = 'Warning: ' + text; + if (typeof console !== 'undefined') { + console.error(message); + } + try { + // --- Welcome to debugging React --- + // This error was thrown as a convenience so that you can use this stack + // to find the callsite that caused this warning to fire. + throw new Error(message); + } catch (x) {} + }; + } + + /** + * Assert that the values match with the type specs. + * Error messages are memorized and will only be shown once. + * + * @param {object} typeSpecs Map of name to a ReactPropType + * @param {object} values Runtime values that need to be type-checked + * @param {string} location e.g. "prop", "context", "child context" + * @param {string} componentName Name of the component for error messages. + * @param {?Function} getStack Returns the component stack. + * @private + */ + function checkPropTypes(typeSpecs, values, location, componentName, getStack) { + { + for (var typeSpecName in typeSpecs) { + if (has(typeSpecs, typeSpecName)) { + var error; + // Prop type validation may throw. In case they do, we don't want to + // fail the render phase where it didn't fail before. So we log it. + // After these have been cleaned up, we'll let them throw. + try { + // This is intentionally an invariant that gets caught. It's the same + // behavior as without this statement except with a better message. + if (typeof typeSpecs[typeSpecName] !== 'function') { + var err = Error( + (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + ); + err.name = 'Invariant Violation'; + throw err; + } + error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret$1); + } catch (ex) { + error = ex; + } + if (error && !(error instanceof Error)) { + printWarning( + (componentName || 'React class') + ': type specification of ' + + location + ' `' + typeSpecName + '` is invalid; the type checker ' + + 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' + + 'You may have forgotten to pass an argument to the type checker ' + + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + + 'shape all require an argument).' + ); + } + if (error instanceof Error && !(error.message in loggedTypeFailures)) { + // Only monitor this failure once because there tends to be a lot of the + // same error. + loggedTypeFailures[error.message] = true; + + var stack = getStack ? getStack() : ''; + + printWarning( + 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '') + ); + } + } + } + } + } + + /** + * Resets warning cache when testing. + * + * @private + */ + checkPropTypes.resetWarningCache = function() { + { + loggedTypeFailures = {}; + } + }; + + var checkPropTypes_1 = checkPropTypes; + + var has$1 = Function.call.bind(Object.prototype.hasOwnProperty); + var printWarning$1 = function() {}; + + { + printWarning$1 = function(text) { + var message = 'Warning: ' + text; + if (typeof console !== 'undefined') { + console.error(message); + } + try { + // --- Welcome to debugging React --- + // This error was thrown as a convenience so that you can use this stack + // to find the callsite that caused this warning to fire. + throw new Error(message); + } catch (x) {} + }; + } + + function emptyFunctionThatReturnsNull() { + return null; + } + + var factoryWithTypeCheckers = function(isValidElement, throwOnDirectAccess) { + /* global Symbol */ + var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; + var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec. + + /** + * Returns the iterator method function contained on the iterable object. + * + * Be sure to invoke the function with the iterable as context: + * + * var iteratorFn = getIteratorFn(myIterable); + * if (iteratorFn) { + * var iterator = iteratorFn.call(myIterable); + * ... + * } + * + * @param {?object} maybeIterable + * @return {?function} + */ + function getIteratorFn(maybeIterable) { + var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]); + if (typeof iteratorFn === 'function') { + return iteratorFn; + } + } + + /** + * Collection of methods that allow declaration and validation of props that are + * supplied to React components. Example usage: + * + * var Props = require('ReactPropTypes'); + * var MyArticle = React.createClass({ + * propTypes: { + * // An optional string prop named "description". + * description: Props.string, + * + * // A required enum prop named "category". + * category: Props.oneOf(['News','Photos']).isRequired, + * + * // A prop named "dialog" that requires an instance of Dialog. + * dialog: Props.instanceOf(Dialog).isRequired + * }, + * render: function() { ... } + * }); + * + * A more formal specification of how these methods are used: + * + * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...) + * decl := ReactPropTypes.{type}(.isRequired)? + * + * Each and every declaration produces a function with the same signature. This + * allows the creation of custom validation functions. For example: + * + * var MyLink = React.createClass({ + * propTypes: { + * // An optional string or URI prop named "href". + * href: function(props, propName, componentName) { + * var propValue = props[propName]; + * if (propValue != null && typeof propValue !== 'string' && + * !(propValue instanceof URI)) { + * return new Error( + * 'Expected a string or an URI for ' + propName + ' in ' + + * componentName + * ); + * } + * } + * }, + * render: function() {...} + * }); + * + * @internal + */ + + var ANONYMOUS = '<>'; + + // Important! + // Keep this list in sync with production version in `./factoryWithThrowingShims.js`. + var ReactPropTypes = { + array: createPrimitiveTypeChecker('array'), + bool: createPrimitiveTypeChecker('boolean'), + func: createPrimitiveTypeChecker('function'), + number: createPrimitiveTypeChecker('number'), + object: createPrimitiveTypeChecker('object'), + string: createPrimitiveTypeChecker('string'), + symbol: createPrimitiveTypeChecker('symbol'), + + any: createAnyTypeChecker(), + arrayOf: createArrayOfTypeChecker, + element: createElementTypeChecker(), + elementType: createElementTypeTypeChecker(), + instanceOf: createInstanceTypeChecker, + node: createNodeChecker(), + objectOf: createObjectOfTypeChecker, + oneOf: createEnumTypeChecker, + oneOfType: createUnionTypeChecker, + shape: createShapeTypeChecker, + exact: createStrictShapeTypeChecker, + }; + + /** + * inlined Object.is polyfill to avoid requiring consumers ship their own + * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is + */ + /*eslint-disable no-self-compare*/ + function is(x, y) { + // SameValue algorithm + if (x === y) { + // Steps 1-5, 7-10 + // Steps 6.b-6.e: +0 != -0 + return x !== 0 || 1 / x === 1 / y; + } else { + // Step 6.a: NaN == NaN + return x !== x && y !== y; + } + } + /*eslint-enable no-self-compare*/ + + /** + * We use an Error-like object for backward compatibility as people may call + * PropTypes directly and inspect their output. However, we don't use real + * Errors anymore. We don't inspect their stack anyway, and creating them + * is prohibitively expensive if they are created too often, such as what + * happens in oneOfType() for any type before the one that matched. + */ + function PropTypeError(message) { + this.message = message; + this.stack = ''; + } + // Make `instanceof Error` still work for returned errors. + PropTypeError.prototype = Error.prototype; + + function createChainableTypeChecker(validate) { + { + var manualPropTypeCallCache = {}; + var manualPropTypeWarningCount = 0; + } + function checkType(isRequired, props, propName, componentName, location, propFullName, secret) { + componentName = componentName || ANONYMOUS; + propFullName = propFullName || propName; + + if (secret !== ReactPropTypesSecret_1) { + if (throwOnDirectAccess) { + // New behavior only for users of `prop-types` package + var err = new Error( + 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + + 'Use `PropTypes.checkPropTypes()` to call them. ' + + 'Read more at http://fb.me/use-check-prop-types' + ); + err.name = 'Invariant Violation'; + throw err; + } else if ( typeof console !== 'undefined') { + // Old behavior for people using React.PropTypes + var cacheKey = componentName + ':' + propName; + if ( + !manualPropTypeCallCache[cacheKey] && + // Avoid spamming the console because they are often not actionable except for lib authors + manualPropTypeWarningCount < 3 + ) { + printWarning$1( + 'You are manually calling a React.PropTypes validation ' + + 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' + + 'and will throw in the standalone `prop-types` package. ' + + 'You may be seeing this warning due to a third-party PropTypes ' + + 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.' + ); + manualPropTypeCallCache[cacheKey] = true; + manualPropTypeWarningCount++; + } + } + } + if (props[propName] == null) { + if (isRequired) { + if (props[propName] === null) { + return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.')); + } + return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.')); + } + return null; + } else { + return validate(props, propName, componentName, location, propFullName); + } + } + + var chainedCheckType = checkType.bind(null, false); + chainedCheckType.isRequired = checkType.bind(null, true); + + return chainedCheckType; + } + + function createPrimitiveTypeChecker(expectedType) { + function validate(props, propName, componentName, location, propFullName, secret) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== expectedType) { + // `propValue` being instance of, say, date/regexp, pass the 'object' + // check, but we can offer a more precise error message here rather than + // 'of type `object`'. + var preciseType = getPreciseType(propValue); + + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createAnyTypeChecker() { + return createChainableTypeChecker(emptyFunctionThatReturnsNull); + } + + function createArrayOfTypeChecker(typeChecker) { + function validate(props, propName, componentName, location, propFullName) { + if (typeof typeChecker !== 'function') { + return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.'); + } + var propValue = props[propName]; + if (!Array.isArray(propValue)) { + var propType = getPropType(propValue); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.')); + } + for (var i = 0; i < propValue.length; i++) { + var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret_1); + if (error instanceof Error) { + return error; + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createElementTypeChecker() { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + if (!isValidElement(propValue)) { + var propType = getPropType(propValue); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createElementTypeTypeChecker() { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + if (!reactIs.isValidElementType(propValue)) { + var propType = getPropType(propValue); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createInstanceTypeChecker(expectedClass) { + function validate(props, propName, componentName, location, propFullName) { + if (!(props[propName] instanceof expectedClass)) { + var expectedClassName = expectedClass.name || ANONYMOUS; + var actualClassName = getClassName(props[propName]); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createEnumTypeChecker(expectedValues) { + if (!Array.isArray(expectedValues)) { + { + if (arguments.length > 1) { + printWarning$1( + 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' + + 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).' + ); + } else { + printWarning$1('Invalid argument supplied to oneOf, expected an array.'); + } + } + return emptyFunctionThatReturnsNull; + } + + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + for (var i = 0; i < expectedValues.length; i++) { + if (is(propValue, expectedValues[i])) { + return null; + } + } + + var valuesString = JSON.stringify(expectedValues, function replacer(key, value) { + var type = getPreciseType(value); + if (type === 'symbol') { + return String(value); + } + return value; + }); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.')); + } + return createChainableTypeChecker(validate); + } + + function createObjectOfTypeChecker(typeChecker) { + function validate(props, propName, componentName, location, propFullName) { + if (typeof typeChecker !== 'function') { + return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.'); + } + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.')); + } + for (var key in propValue) { + if (has$1(propValue, key)) { + var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret_1); + if (error instanceof Error) { + return error; + } + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createUnionTypeChecker(arrayOfTypeCheckers) { + if (!Array.isArray(arrayOfTypeCheckers)) { + printWarning$1('Invalid argument supplied to oneOfType, expected an instance of array.') ; + return emptyFunctionThatReturnsNull; + } + + for (var i = 0; i < arrayOfTypeCheckers.length; i++) { + var checker = arrayOfTypeCheckers[i]; + if (typeof checker !== 'function') { + printWarning$1( + 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' + + 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.' + ); + return emptyFunctionThatReturnsNull; + } + } + + function validate(props, propName, componentName, location, propFullName) { + for (var i = 0; i < arrayOfTypeCheckers.length; i++) { + var checker = arrayOfTypeCheckers[i]; + if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret_1) == null) { + return null; + } + } + + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.')); + } + return createChainableTypeChecker(validate); + } + + function createNodeChecker() { + function validate(props, propName, componentName, location, propFullName) { + if (!isNode(props[propName])) { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createShapeTypeChecker(shapeTypes) { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); + } + for (var key in shapeTypes) { + var checker = shapeTypes[key]; + if (!checker) { + continue; + } + var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret_1); + if (error) { + return error; + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createStrictShapeTypeChecker(shapeTypes) { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); + } + // We need to check all keys in case some are required but missing from + // props. + var allKeys = objectAssign({}, props[propName], shapeTypes); + for (var key in allKeys) { + var checker = shapeTypes[key]; + if (!checker) { + return new PropTypeError( + 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' + + '\nBad object: ' + JSON.stringify(props[propName], null, ' ') + + '\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ') + ); + } + var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret_1); + if (error) { + return error; + } + } + return null; + } + + return createChainableTypeChecker(validate); + } + + function isNode(propValue) { + switch (typeof propValue) { + case 'number': + case 'string': + case 'undefined': + return true; + case 'boolean': + return !propValue; + case 'object': + if (Array.isArray(propValue)) { + return propValue.every(isNode); + } + if (propValue === null || isValidElement(propValue)) { + return true; + } + + var iteratorFn = getIteratorFn(propValue); + if (iteratorFn) { + var iterator = iteratorFn.call(propValue); + var step; + if (iteratorFn !== propValue.entries) { + while (!(step = iterator.next()).done) { + if (!isNode(step.value)) { + return false; + } + } + } else { + // Iterator will provide entry [k,v] tuples rather than values. + while (!(step = iterator.next()).done) { + var entry = step.value; + if (entry) { + if (!isNode(entry[1])) { + return false; + } + } + } + } + } else { + return false; + } + + return true; + default: + return false; + } + } + + function isSymbol(propType, propValue) { + // Native Symbol. + if (propType === 'symbol') { + return true; + } + + // falsy value can't be a Symbol + if (!propValue) { + return false; + } + + // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol' + if (propValue['@@toStringTag'] === 'Symbol') { + return true; + } + + // Fallback for non-spec compliant Symbols which are polyfilled. + if (typeof Symbol === 'function' && propValue instanceof Symbol) { + return true; + } + + return false; + } + + // Equivalent of `typeof` but with special handling for array and regexp. + function getPropType(propValue) { + var propType = typeof propValue; + if (Array.isArray(propValue)) { + return 'array'; + } + if (propValue instanceof RegExp) { + // Old webkits (at least until Android 4.0) return 'function' rather than + // 'object' for typeof a RegExp. We'll normalize this here so that /bla/ + // passes PropTypes.object. + return 'object'; + } + if (isSymbol(propType, propValue)) { + return 'symbol'; + } + return propType; + } + + // This handles more types than `getPropType`. Only used for error messages. + // See `createPrimitiveTypeChecker`. + function getPreciseType(propValue) { + if (typeof propValue === 'undefined' || propValue === null) { + return '' + propValue; + } + var propType = getPropType(propValue); + if (propType === 'object') { + if (propValue instanceof Date) { + return 'date'; + } else if (propValue instanceof RegExp) { + return 'regexp'; + } + } + return propType; + } + + // Returns a string that is postfixed to a warning about an invalid type. + // For example, "undefined" or "of type array" + function getPostfixForTypeWarning(value) { + var type = getPreciseType(value); + switch (type) { + case 'array': + case 'object': + return 'an ' + type; + case 'boolean': + case 'date': + case 'regexp': + return 'a ' + type; + default: + return type; + } + } + + // Returns class name of the object, if any. + function getClassName(propValue) { + if (!propValue.constructor || !propValue.constructor.name) { + return ANONYMOUS; + } + return propValue.constructor.name; + } + + ReactPropTypes.checkPropTypes = checkPropTypes_1; + ReactPropTypes.resetWarningCache = checkPropTypes_1.resetWarningCache; + ReactPropTypes.PropTypes = ReactPropTypes; + + return ReactPropTypes; + }; + + var propTypes = createCommonjsModule(function (module) { + /** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + + { + var ReactIs = reactIs; + + // By explicitly using `prop-types` you are opting into new development behavior. + // http://fb.me/prop-types-in-prod + var throwOnDirectAccess = true; + module.exports = factoryWithTypeCheckers(ReactIs.isElement, throwOnDirectAccess); + } + }); + + function _extends() { + _extends = Object.assign || function (target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + + return target; + }; + + return _extends.apply(this, arguments); + } + + function isAbsolute(pathname) { + return pathname.charAt(0) === '/'; + } + + // About 1.5x faster than the two-arg version of Array#splice() + function spliceOne(list, index) { + for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) { + list[i] = list[k]; + } + + list.pop(); + } + + // This implementation is based heavily on node's url.parse + function resolvePathname(to) { + var from = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; + + var toParts = to && to.split('/') || []; + var fromParts = from && from.split('/') || []; + + var isToAbs = to && isAbsolute(to); + var isFromAbs = from && isAbsolute(from); + var mustEndAbs = isToAbs || isFromAbs; + + if (to && isAbsolute(to)) { + // to is absolute + fromParts = toParts; + } else if (toParts.length) { + // to is relative, drop the filename + fromParts.pop(); + fromParts = fromParts.concat(toParts); + } + + if (!fromParts.length) return '/'; + + var hasTrailingSlash = void 0; + if (fromParts.length) { + var last = fromParts[fromParts.length - 1]; + hasTrailingSlash = last === '.' || last === '..' || last === ''; + } else { + hasTrailingSlash = false; + } + + var up = 0; + for (var i = fromParts.length; i >= 0; i--) { + var part = fromParts[i]; + + if (part === '.') { + spliceOne(fromParts, i); + } else if (part === '..') { + spliceOne(fromParts, i); + up++; + } else if (up) { + spliceOne(fromParts, i); + up--; + } + } + + if (!mustEndAbs) for (; up--; up) { + fromParts.unshift('..'); + }if (mustEndAbs && fromParts[0] !== '' && (!fromParts[0] || !isAbsolute(fromParts[0]))) fromParts.unshift(''); + + var result = fromParts.join('/'); + + if (hasTrailingSlash && result.substr(-1) !== '/') result += '/'; + + return result; + } + + var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + + function valueEqual(a, b) { + if (a === b) return true; + + if (a == null || b == null) return false; + + if (Array.isArray(a)) { + return Array.isArray(b) && a.length === b.length && a.every(function (item, index) { + return valueEqual(item, b[index]); + }); + } + + var aType = typeof a === 'undefined' ? 'undefined' : _typeof(a); + var bType = typeof b === 'undefined' ? 'undefined' : _typeof(b); + + if (aType !== bType) return false; + + if (aType === 'object') { + var aValue = a.valueOf(); + var bValue = b.valueOf(); + + if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue); + + var aKeys = Object.keys(a); + var bKeys = Object.keys(b); + + if (aKeys.length !== bKeys.length) return false; + + return aKeys.every(function (key) { + return valueEqual(a[key], b[key]); + }); + } + + return false; + } + + function warning(condition, message) { + { + if (condition) { + return; + } + + var text = "Warning: " + message; + + if (typeof console !== 'undefined') { + console.warn(text); + } + + try { + throw Error(text); + } catch (x) {} + } + } + + var prefix = 'Invariant failed'; + function invariant(condition, message) { + if (condition) { + return; + } + + { + throw new Error(prefix + ": " + (message || '')); + } + } + + function parsePath(path) { + var pathname = path || '/'; + var search = ''; + var hash = ''; + var hashIndex = pathname.indexOf('#'); + + if (hashIndex !== -1) { + hash = pathname.substr(hashIndex); + pathname = pathname.substr(0, hashIndex); + } + + var searchIndex = pathname.indexOf('?'); + + if (searchIndex !== -1) { + search = pathname.substr(searchIndex); + pathname = pathname.substr(0, searchIndex); + } + + return { + pathname: pathname, + search: search === '?' ? '' : search, + hash: hash === '#' ? '' : hash + }; + } + function createPath(location) { + var pathname = location.pathname, + search = location.search, + hash = location.hash; + var path = pathname || '/'; + if (search && search !== '?') path += search.charAt(0) === '?' ? search : "?" + search; + if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : "#" + hash; + return path; + } + + function createLocation(path, state, key, currentLocation) { + var location; + + if (typeof path === 'string') { + // Two-arg form: push(path, state) + location = parsePath(path); + location.state = state; + } else { + // One-arg form: push(location) + location = _extends({}, path); + if (location.pathname === undefined) location.pathname = ''; + + if (location.search) { + if (location.search.charAt(0) !== '?') location.search = '?' + location.search; + } else { + location.search = ''; + } + + if (location.hash) { + if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash; + } else { + location.hash = ''; + } + + if (state !== undefined && location.state === undefined) location.state = state; + } + + try { + location.pathname = decodeURI(location.pathname); + } catch (e) { + if (e instanceof URIError) { + throw new URIError('Pathname "' + location.pathname + '" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.'); + } else { + throw e; + } + } + + if (key) location.key = key; + + if (currentLocation) { + // Resolve incomplete/relative pathname relative to current location. + if (!location.pathname) { + location.pathname = currentLocation.pathname; + } else if (location.pathname.charAt(0) !== '/') { + location.pathname = resolvePathname(location.pathname, currentLocation.pathname); + } + } else { + // When there is no prior location and pathname is empty, set it to / + if (!location.pathname) { + location.pathname = '/'; + } + } + + return location; + } + function locationsAreEqual(a, b) { + return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state); + } + + function createTransitionManager() { + var prompt = null; + + function setPrompt(nextPrompt) { + warning(prompt == null, 'A history supports only one prompt at a time') ; + prompt = nextPrompt; + return function () { + if (prompt === nextPrompt) prompt = null; + }; + } + + function confirmTransitionTo(location, action, getUserConfirmation, callback) { + // TODO: If another transition starts while we're still confirming + // the previous one, we may end up in a weird state. Figure out the + // best way to handle this. + if (prompt != null) { + var result = typeof prompt === 'function' ? prompt(location, action) : prompt; + + if (typeof result === 'string') { + if (typeof getUserConfirmation === 'function') { + getUserConfirmation(result, callback); + } else { + warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') ; + callback(true); + } + } else { + // Return false from a transition hook to cancel the transition. + callback(result !== false); + } + } else { + callback(true); + } + } + + var listeners = []; + + function appendListener(fn) { + var isActive = true; + + function listener() { + if (isActive) fn.apply(void 0, arguments); + } + + listeners.push(listener); + return function () { + isActive = false; + listeners = listeners.filter(function (item) { + return item !== listener; + }); + }; + } + + function notifyListeners() { + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + listeners.forEach(function (listener) { + return listener.apply(void 0, args); + }); + } + + return { + setPrompt: setPrompt, + confirmTransitionTo: confirmTransitionTo, + appendListener: appendListener, + notifyListeners: notifyListeners + }; + } + + var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement); + + function clamp(n, lowerBound, upperBound) { + return Math.min(Math.max(n, lowerBound), upperBound); + } + /** + * Creates a history object that stores locations in memory. + */ + + + function createMemoryHistory(props) { + if (props === void 0) { + props = {}; + } + + var _props = props, + getUserConfirmation = _props.getUserConfirmation, + _props$initialEntries = _props.initialEntries, + initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries, + _props$initialIndex = _props.initialIndex, + initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex, + _props$keyLength = _props.keyLength, + keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength; + var transitionManager = createTransitionManager(); + + function setState(nextState) { + _extends(history, nextState); + + history.length = history.entries.length; + transitionManager.notifyListeners(history.location, history.action); + } + + function createKey() { + return Math.random().toString(36).substr(2, keyLength); + } + + var index = clamp(initialIndex, 0, initialEntries.length - 1); + var entries = initialEntries.map(function (entry) { + return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey()); + }); // Public interface + + var createHref = createPath; + + function push(path, state) { + warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') ; + var action = 'PUSH'; + var location = createLocation(path, state, createKey(), history.location); + transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { + if (!ok) return; + var prevIndex = history.index; + var nextIndex = prevIndex + 1; + var nextEntries = history.entries.slice(0); + + if (nextEntries.length > nextIndex) { + nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location); + } else { + nextEntries.push(location); + } + + setState({ + action: action, + location: location, + index: nextIndex, + entries: nextEntries + }); + }); + } + + function replace(path, state) { + warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') ; + var action = 'REPLACE'; + var location = createLocation(path, state, createKey(), history.location); + transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { + if (!ok) return; + history.entries[history.index] = location; + setState({ + action: action, + location: location + }); + }); + } + + function go(n) { + var nextIndex = clamp(history.index + n, 0, history.entries.length - 1); + var action = 'POP'; + var location = history.entries[nextIndex]; + transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { + if (ok) { + setState({ + action: action, + location: location, + index: nextIndex + }); + } else { + // Mimic the behavior of DOM histories by + // causing a render after a cancelled POP. + setState(); + } + }); + } + + function goBack() { + go(-1); + } + + function goForward() { + go(1); + } + + function canGo(n) { + var nextIndex = history.index + n; + return nextIndex >= 0 && nextIndex < history.entries.length; + } + + function block(prompt) { + if (prompt === void 0) { + prompt = false; + } + + return transitionManager.setPrompt(prompt); + } + + function listen(listener) { + return transitionManager.appendListener(listener); + } + + var history = { + length: entries.length, + action: 'POP', + location: entries[index], + index: index, + entries: entries, + createHref: createHref, + push: push, + replace: replace, + go: go, + goBack: goBack, + goForward: goForward, + canGo: canGo, + block: block, + listen: listen + }; + return history; + } + + function _inheritsLoose$1(subClass, superClass) { + subClass.prototype = Object.create(superClass.prototype); + subClass.prototype.constructor = subClass; + subClass.__proto__ = superClass; + } + + var MAX_SIGNED_31_BIT_INT = 1073741823; + var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {}; + + function getUniqueId() { + var key = '__global_unique_id__'; + return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1; + } + + function objectIs(x, y) { + if (x === y) { + return x !== 0 || 1 / x === 1 / y; + } else { + return x !== x && y !== y; + } + } + + function createEventEmitter(value) { + var handlers = []; + return { + on: function on(handler) { + handlers.push(handler); + }, + off: function off(handler) { + handlers = handlers.filter(function (h) { + return h !== handler; + }); + }, + get: function get() { + return value; + }, + set: function set(newValue, changedBits) { + value = newValue; + handlers.forEach(function (handler) { + return handler(value, changedBits); + }); + } + }; + } + + function onlyChild(children) { + return Array.isArray(children) ? children[0] : children; + } + + function createReactContext(defaultValue, calculateChangedBits) { + var _Provider$childContex, _Consumer$contextType; + + var contextProp = '__create-react-context-' + getUniqueId() + '__'; + + var Provider = /*#__PURE__*/function (_Component) { + _inheritsLoose$1(Provider, _Component); + + function Provider() { + var _this; + + _this = _Component.apply(this, arguments) || this; + _this.emitter = createEventEmitter(_this.props.value); + return _this; + } + + var _proto = Provider.prototype; + + _proto.getChildContext = function getChildContext() { + var _ref; + + return _ref = {}, _ref[contextProp] = this.emitter, _ref; + }; + + _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { + if (this.props.value !== nextProps.value) { + var oldValue = this.props.value; + var newValue = nextProps.value; + var changedBits; + + if (objectIs(oldValue, newValue)) { + changedBits = 0; + } else { + changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT; + + { + warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: ' + changedBits); + } + + changedBits |= 0; + + if (changedBits !== 0) { + this.emitter.set(nextProps.value, changedBits); + } + } + } + }; + + _proto.render = function render() { + return this.props.children; + }; + + return Provider; + }(React.Component); + + Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = propTypes.object.isRequired, _Provider$childContex); + + var Consumer = /*#__PURE__*/function (_Component2) { + _inheritsLoose$1(Consumer, _Component2); + + function Consumer() { + var _this2; + + _this2 = _Component2.apply(this, arguments) || this; + _this2.state = { + value: _this2.getValue() + }; + + _this2.onUpdate = function (newValue, changedBits) { + var observedBits = _this2.observedBits | 0; + + if ((observedBits & changedBits) !== 0) { + _this2.setState({ + value: _this2.getValue() + }); + } + }; + + return _this2; + } + + var _proto2 = Consumer.prototype; + + _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { + var observedBits = nextProps.observedBits; + this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits; + }; + + _proto2.componentDidMount = function componentDidMount() { + if (this.context[contextProp]) { + this.context[contextProp].on(this.onUpdate); + } + + var observedBits = this.props.observedBits; + this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits; + }; + + _proto2.componentWillUnmount = function componentWillUnmount() { + if (this.context[contextProp]) { + this.context[contextProp].off(this.onUpdate); + } + }; + + _proto2.getValue = function getValue() { + if (this.context[contextProp]) { + return this.context[contextProp].get(); + } else { + return defaultValue; + } + }; + + _proto2.render = function render() { + return onlyChild(this.props.children)(this.state.value); + }; + + return Consumer; + }(React.Component); + + Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = propTypes.object, _Consumer$contextType); + return { + Provider: Provider, + Consumer: Consumer + }; + } + + var index = React__default.createContext || createReactContext; + + // TODO: Replace with React.createContext once we can assume React 16+ + + var createNamedContext = function createNamedContext(name) { + var context = index(); + context.displayName = name; + return context; + }; + + var historyContext = + /*#__PURE__*/ + createNamedContext("Router-History"); + + // TODO: Replace with React.createContext once we can assume React 16+ + + var createNamedContext$1 = function createNamedContext(name) { + var context = index(); + context.displayName = name; + return context; + }; + + var context = + /*#__PURE__*/ + createNamedContext$1("Router"); + + /** + * The public API for putting history on context. + */ + + var Router = + /*#__PURE__*/ + function (_React$Component) { + _inheritsLoose(Router, _React$Component); + + Router.computeRootMatch = function computeRootMatch(pathname) { + return { + path: "/", + url: "/", + params: {}, + isExact: pathname === "/" + }; + }; + + function Router(props) { + var _this; + + _this = _React$Component.call(this, props) || this; + _this.state = { + location: props.history.location + }; // This is a bit of a hack. We have to start listening for location + // changes here in the constructor in case there are any s + // on the initial render. If there are, they will replace/push when + // they mount and since cDM fires in children before parents, we may + // get a new location before the is mounted. + + _this._isMounted = false; + _this._pendingLocation = null; + + if (!props.staticContext) { + _this.unlisten = props.history.listen(function (location) { + if (_this._isMounted) { + _this.setState({ + location: location + }); + } else { + _this._pendingLocation = location; + } + }); + } + + return _this; + } + + var _proto = Router.prototype; + + _proto.componentDidMount = function componentDidMount() { + this._isMounted = true; + + if (this._pendingLocation) { + this.setState({ + location: this._pendingLocation + }); + } + }; + + _proto.componentWillUnmount = function componentWillUnmount() { + if (this.unlisten) this.unlisten(); + }; + + _proto.render = function render() { + return React__default.createElement(context.Provider, { + value: { + history: this.props.history, + location: this.state.location, + match: Router.computeRootMatch(this.state.location.pathname), + staticContext: this.props.staticContext + } + }, React__default.createElement(historyContext.Provider, { + children: this.props.children || null, + value: this.props.history + })); + }; + + return Router; + }(React__default.Component); + + { + Router.propTypes = { + children: propTypes.node, + history: propTypes.object.isRequired, + staticContext: propTypes.object + }; + + Router.prototype.componentDidUpdate = function (prevProps) { + warning(prevProps.history === this.props.history, "You cannot change ") ; + }; + } + + /** + * The public API for a that stores location in memory. + */ + + var MemoryRouter = + /*#__PURE__*/ + function (_React$Component) { + _inheritsLoose(MemoryRouter, _React$Component); + + function MemoryRouter() { + var _this; + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this; + _this.history = createMemoryHistory(_this.props); + return _this; + } + + var _proto = MemoryRouter.prototype; + + _proto.render = function render() { + return React__default.createElement(Router, { + history: this.history, + children: this.props.children + }); + }; + + return MemoryRouter; + }(React__default.Component); + + { + MemoryRouter.propTypes = { + initialEntries: propTypes.array, + initialIndex: propTypes.number, + getUserConfirmation: propTypes.func, + keyLength: propTypes.number, + children: propTypes.node + }; + + MemoryRouter.prototype.componentDidMount = function () { + warning(!this.props.history, " ignores the history prop. To use a custom history, " + "use `import { Router }` instead of `import { MemoryRouter as Router }`.") ; + }; + } + + var Lifecycle = + /*#__PURE__*/ + function (_React$Component) { + _inheritsLoose(Lifecycle, _React$Component); + + function Lifecycle() { + return _React$Component.apply(this, arguments) || this; + } + + var _proto = Lifecycle.prototype; + + _proto.componentDidMount = function componentDidMount() { + if (this.props.onMount) this.props.onMount.call(this, this); + }; + + _proto.componentDidUpdate = function componentDidUpdate(prevProps) { + if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps); + }; + + _proto.componentWillUnmount = function componentWillUnmount() { + if (this.props.onUnmount) this.props.onUnmount.call(this, this); + }; + + _proto.render = function render() { + return null; + }; + + return Lifecycle; + }(React__default.Component); + + /** + * The public API for prompting the user before navigating away from a screen. + */ + + function Prompt(_ref) { + var message = _ref.message, + _ref$when = _ref.when, + when = _ref$when === void 0 ? true : _ref$when; + return React__default.createElement(context.Consumer, null, function (context) { + !context ? invariant(false, "You should not use outside a ") : void 0; + if (!when || context.staticContext) return null; + var method = context.history.block; + return React__default.createElement(Lifecycle, { + onMount: function onMount(self) { + self.release = method(message); + }, + onUpdate: function onUpdate(self, prevProps) { + if (prevProps.message !== message) { + self.release(); + self.release = method(message); + } + }, + onUnmount: function onUnmount(self) { + self.release(); + }, + message: message + }); + }); + } + + { + var messageType = propTypes.oneOfType([propTypes.func, propTypes.string]); + Prompt.propTypes = { + when: propTypes.bool, + message: messageType.isRequired + }; + } + + var isarray = Array.isArray || function (arr) { + return Object.prototype.toString.call(arr) == '[object Array]'; + }; + + /** + * Expose `pathToRegexp`. + */ + var pathToRegexp_1 = pathToRegexp; + var parse_1 = parse; + var compile_1 = compile; + var tokensToFunction_1 = tokensToFunction; + var tokensToRegExp_1 = tokensToRegExp; + + /** + * The main path matching regexp utility. + * + * @type {RegExp} + */ + var PATH_REGEXP = new RegExp([ + // Match escaped characters that would otherwise appear in future matches. + // This allows the user to escape special characters that won't transform. + '(\\\\.)', + // Match Express-style parameters and un-named parameters with a prefix + // and optional suffixes. Matches appear as: + // + // "/:test(\\d+)?" => ["/", "test", "\d+", undefined, "?", undefined] + // "/route(\\d+)" => [undefined, undefined, undefined, "\d+", undefined, undefined] + // "/*" => ["/", undefined, undefined, undefined, undefined, "*"] + '([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))' + ].join('|'), 'g'); + + /** + * Parse a string for the raw tokens. + * + * @param {string} str + * @param {Object=} options + * @return {!Array} + */ + function parse (str, options) { + var tokens = []; + var key = 0; + var index = 0; + var path = ''; + var defaultDelimiter = options && options.delimiter || '/'; + var res; + + while ((res = PATH_REGEXP.exec(str)) != null) { + var m = res[0]; + var escaped = res[1]; + var offset = res.index; + path += str.slice(index, offset); + index = offset + m.length; + + // Ignore already escaped sequences. + if (escaped) { + path += escaped[1]; + continue + } + + var next = str[index]; + var prefix = res[2]; + var name = res[3]; + var capture = res[4]; + var group = res[5]; + var modifier = res[6]; + var asterisk = res[7]; + + // Push the current path onto the tokens. + if (path) { + tokens.push(path); + path = ''; + } + + var partial = prefix != null && next != null && next !== prefix; + var repeat = modifier === '+' || modifier === '*'; + var optional = modifier === '?' || modifier === '*'; + var delimiter = res[2] || defaultDelimiter; + var pattern = capture || group; + + tokens.push({ + name: name || key++, + prefix: prefix || '', + delimiter: delimiter, + optional: optional, + repeat: repeat, + partial: partial, + asterisk: !!asterisk, + pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?') + }); + } + + // Match any characters still remaining. + if (index < str.length) { + path += str.substr(index); + } + + // If the path exists, push it onto the end. + if (path) { + tokens.push(path); + } + + return tokens + } + + /** + * Compile a string to a template function for the path. + * + * @param {string} str + * @param {Object=} options + * @return {!function(Object=, Object=)} + */ + function compile (str, options) { + return tokensToFunction(parse(str, options)) + } + + /** + * Prettier encoding of URI path segments. + * + * @param {string} + * @return {string} + */ + function encodeURIComponentPretty (str) { + return encodeURI(str).replace(/[\/?#]/g, function (c) { + return '%' + c.charCodeAt(0).toString(16).toUpperCase() + }) + } + + /** + * Encode the asterisk parameter. Similar to `pretty`, but allows slashes. + * + * @param {string} + * @return {string} + */ + function encodeAsterisk (str) { + return encodeURI(str).replace(/[?#]/g, function (c) { + return '%' + c.charCodeAt(0).toString(16).toUpperCase() + }) + } + + /** + * Expose a method for transforming tokens into the path function. + */ + function tokensToFunction (tokens) { + // Compile all the tokens into regexps. + var matches = new Array(tokens.length); + + // Compile all the patterns before compilation. + for (var i = 0; i < tokens.length; i++) { + if (typeof tokens[i] === 'object') { + matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$'); + } + } + + return function (obj, opts) { + var path = ''; + var data = obj || {}; + var options = opts || {}; + var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent; + + for (var i = 0; i < tokens.length; i++) { + var token = tokens[i]; + + if (typeof token === 'string') { + path += token; + + continue + } + + var value = data[token.name]; + var segment; + + if (value == null) { + if (token.optional) { + // Prepend partial segment prefixes. + if (token.partial) { + path += token.prefix; + } + + continue + } else { + throw new TypeError('Expected "' + token.name + '" to be defined') + } + } + + if (isarray(value)) { + if (!token.repeat) { + throw new TypeError('Expected "' + token.name + '" to not repeat, but received `' + JSON.stringify(value) + '`') + } + + if (value.length === 0) { + if (token.optional) { + continue + } else { + throw new TypeError('Expected "' + token.name + '" to not be empty') + } + } + + for (var j = 0; j < value.length; j++) { + segment = encode(value[j]); + + if (!matches[i].test(segment)) { + throw new TypeError('Expected all "' + token.name + '" to match "' + token.pattern + '", but received `' + JSON.stringify(segment) + '`') + } + + path += (j === 0 ? token.prefix : token.delimiter) + segment; + } + + continue + } + + segment = token.asterisk ? encodeAsterisk(value) : encode(value); + + if (!matches[i].test(segment)) { + throw new TypeError('Expected "' + token.name + '" to match "' + token.pattern + '", but received "' + segment + '"') + } + + path += token.prefix + segment; + } + + return path + } + } + + /** + * Escape a regular expression string. + * + * @param {string} str + * @return {string} + */ + function escapeString (str) { + return str.replace(/([.+*?=^!:${}()[\]|\/\\])/g, '\\$1') + } + + /** + * Escape the capturing group by escaping special characters and meaning. + * + * @param {string} group + * @return {string} + */ + function escapeGroup (group) { + return group.replace(/([=!:$\/()])/g, '\\$1') + } + + /** + * Attach the keys as a property of the regexp. + * + * @param {!RegExp} re + * @param {Array} keys + * @return {!RegExp} + */ + function attachKeys (re, keys) { + re.keys = keys; + return re + } + + /** + * Get the flags for a regexp from the options. + * + * @param {Object} options + * @return {string} + */ + function flags (options) { + return options.sensitive ? '' : 'i' + } + + /** + * Pull out keys from a regexp. + * + * @param {!RegExp} path + * @param {!Array} keys + * @return {!RegExp} + */ + function regexpToRegexp (path, keys) { + // Use a negative lookahead to match only capturing groups. + var groups = path.source.match(/\((?!\?)/g); + + if (groups) { + for (var i = 0; i < groups.length; i++) { + keys.push({ + name: i, + prefix: null, + delimiter: null, + optional: false, + repeat: false, + partial: false, + asterisk: false, + pattern: null + }); + } + } + + return attachKeys(path, keys) + } + + /** + * Transform an array into a regexp. + * + * @param {!Array} path + * @param {Array} keys + * @param {!Object} options + * @return {!RegExp} + */ + function arrayToRegexp (path, keys, options) { + var parts = []; + + for (var i = 0; i < path.length; i++) { + parts.push(pathToRegexp(path[i], keys, options).source); + } + + var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options)); + + return attachKeys(regexp, keys) + } + + /** + * Create a path regexp from string input. + * + * @param {string} path + * @param {!Array} keys + * @param {!Object} options + * @return {!RegExp} + */ + function stringToRegexp (path, keys, options) { + return tokensToRegExp(parse(path, options), keys, options) + } + + /** + * Expose a function for taking tokens and returning a RegExp. + * + * @param {!Array} tokens + * @param {(Array|Object)=} keys + * @param {Object=} options + * @return {!RegExp} + */ + function tokensToRegExp (tokens, keys, options) { + if (!isarray(keys)) { + options = /** @type {!Object} */ (keys || options); + keys = []; + } + + options = options || {}; + + var strict = options.strict; + var end = options.end !== false; + var route = ''; + + // Iterate over the tokens and create our regexp string. + for (var i = 0; i < tokens.length; i++) { + var token = tokens[i]; + + if (typeof token === 'string') { + route += escapeString(token); + } else { + var prefix = escapeString(token.prefix); + var capture = '(?:' + token.pattern + ')'; + + keys.push(token); + + if (token.repeat) { + capture += '(?:' + prefix + capture + ')*'; + } + + if (token.optional) { + if (!token.partial) { + capture = '(?:' + prefix + '(' + capture + '))?'; + } else { + capture = prefix + '(' + capture + ')?'; + } + } else { + capture = prefix + '(' + capture + ')'; + } + + route += capture; + } + } + + var delimiter = escapeString(options.delimiter || '/'); + var endsWithDelimiter = route.slice(-delimiter.length) === delimiter; + + // In non-strict mode we allow a slash at the end of match. If the path to + // match already ends with a slash, we remove it for consistency. The slash + // is valid at the end of a path match, not in the middle. This is important + // in non-ending mode, where "/test/" shouldn't match "/test//route". + if (!strict) { + route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'; + } + + if (end) { + route += '$'; + } else { + // In non-ending mode, we need the capturing groups to match as much as + // possible by using a positive lookahead to the end or next path segment. + route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'; + } + + return attachKeys(new RegExp('^' + route, flags(options)), keys) + } + + /** + * Normalize the given path string, returning a regular expression. + * + * An empty array can be passed in for the keys, which will hold the + * placeholder key descriptions. For example, using `/user/:id`, `keys` will + * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`. + * + * @param {(string|RegExp|Array)} path + * @param {(Array|Object)=} keys + * @param {Object=} options + * @return {!RegExp} + */ + function pathToRegexp (path, keys, options) { + if (!isarray(keys)) { + options = /** @type {!Object} */ (keys || options); + keys = []; + } + + options = options || {}; + + if (path instanceof RegExp) { + return regexpToRegexp(path, /** @type {!Array} */ (keys)) + } + + if (isarray(path)) { + return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options) + } + + return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options) + } + pathToRegexp_1.parse = parse_1; + pathToRegexp_1.compile = compile_1; + pathToRegexp_1.tokensToFunction = tokensToFunction_1; + pathToRegexp_1.tokensToRegExp = tokensToRegExp_1; + + var cache = {}; + var cacheLimit = 10000; + var cacheCount = 0; + + function compilePath(path) { + if (cache[path]) return cache[path]; + var generator = pathToRegexp_1.compile(path); + + if (cacheCount < cacheLimit) { + cache[path] = generator; + cacheCount++; + } + + return generator; + } + /** + * Public API for generating a URL pathname from a path and parameters. + */ + + + function generatePath(path, params) { + if (path === void 0) { + path = "/"; + } + + if (params === void 0) { + params = {}; + } + + return path === "/" ? path : compilePath(path)(params, { + pretty: true + }); + } + + /** + * The public API for navigating programmatically with a component. + */ + + function Redirect(_ref) { + var computedMatch = _ref.computedMatch, + to = _ref.to, + _ref$push = _ref.push, + push = _ref$push === void 0 ? false : _ref$push; + return React__default.createElement(context.Consumer, null, function (context) { + !context ? invariant(false, "You should not use outside a ") : void 0; + var history = context.history, + staticContext = context.staticContext; + var method = push ? history.push : history.replace; + var location = createLocation(computedMatch ? typeof to === "string" ? generatePath(to, computedMatch.params) : _extends({}, to, { + pathname: generatePath(to.pathname, computedMatch.params) + }) : to); // When rendering in a static context, + // set the new location immediately. + + if (staticContext) { + method(location); + return null; + } + + return React__default.createElement(Lifecycle, { + onMount: function onMount() { + method(location); + }, + onUpdate: function onUpdate(self, prevProps) { + var prevLocation = createLocation(prevProps.to); + + if (!locationsAreEqual(prevLocation, _extends({}, location, { + key: prevLocation.key + }))) { + method(location); + } + }, + to: to + }); + }); + } + + { + Redirect.propTypes = { + push: propTypes.bool, + from: propTypes.string, + to: propTypes.oneOfType([propTypes.string, propTypes.object]).isRequired + }; + } + + var cache$1 = {}; + var cacheLimit$1 = 10000; + var cacheCount$1 = 0; + + function compilePath$1(path, options) { + var cacheKey = "" + options.end + options.strict + options.sensitive; + var pathCache = cache$1[cacheKey] || (cache$1[cacheKey] = {}); + if (pathCache[path]) return pathCache[path]; + var keys = []; + var regexp = pathToRegexp_1(path, keys, options); + var result = { + regexp: regexp, + keys: keys + }; + + if (cacheCount$1 < cacheLimit$1) { + pathCache[path] = result; + cacheCount$1++; + } + + return result; + } + /** + * Public API for matching a URL pathname to a path. + */ + + + function matchPath(pathname, options) { + if (options === void 0) { + options = {}; + } + + if (typeof options === "string" || Array.isArray(options)) { + options = { + path: options + }; + } + + var _options = options, + path = _options.path, + _options$exact = _options.exact, + exact = _options$exact === void 0 ? false : _options$exact, + _options$strict = _options.strict, + strict = _options$strict === void 0 ? false : _options$strict, + _options$sensitive = _options.sensitive, + sensitive = _options$sensitive === void 0 ? false : _options$sensitive; + var paths = [].concat(path); + return paths.reduce(function (matched, path) { + if (!path && path !== "") return null; + if (matched) return matched; + + var _compilePath = compilePath$1(path, { + end: exact, + strict: strict, + sensitive: sensitive + }), + regexp = _compilePath.regexp, + keys = _compilePath.keys; + + var match = regexp.exec(pathname); + if (!match) return null; + var url = match[0], + values = match.slice(1); + var isExact = pathname === url; + if (exact && !isExact) return null; + return { + path: path, + // the path used to match + url: path === "/" && url === "" ? "/" : url, + // the matched portion of the URL + isExact: isExact, + // whether or not we matched exactly + params: keys.reduce(function (memo, key, index) { + memo[key.name] = values[index]; + return memo; + }, {}) + }; + }, null); + } + + function isEmptyChildren(children) { + return React__default.Children.count(children) === 0; + } + + function evalChildrenDev(children, props, path) { + var value = children(props); + warning(value !== undefined, "You returned `undefined` from the `children` function of " + (", but you ") + "should have returned a React element or `null`") ; + return value || null; + } + /** + * The public API for matching a single path and rendering. + */ + + + var Route = + /*#__PURE__*/ + function (_React$Component) { + _inheritsLoose(Route, _React$Component); + + function Route() { + return _React$Component.apply(this, arguments) || this; + } + + var _proto = Route.prototype; + + _proto.render = function render() { + var _this = this; + + return React__default.createElement(context.Consumer, null, function (context$1) { + !context$1 ? invariant(false, "You should not use outside a ") : void 0; + var location = _this.props.location || context$1.location; + var match = _this.props.computedMatch ? _this.props.computedMatch // already computed the match for us + : _this.props.path ? matchPath(location.pathname, _this.props) : context$1.match; + + var props = _extends({}, context$1, { + location: location, + match: match + }); + + var _this$props = _this.props, + children = _this$props.children, + component = _this$props.component, + render = _this$props.render; // Preact uses an empty array as children by + // default, so use null if that's the case. + + if (Array.isArray(children) && children.length === 0) { + children = null; + } + + return React__default.createElement(context.Provider, { + value: props + }, props.match ? children ? typeof children === "function" ? evalChildrenDev(children, props, _this.props.path) : children : component ? React__default.createElement(component, props) : render ? render(props) : null : typeof children === "function" ? evalChildrenDev(children, props, _this.props.path) : null); + }); + }; + + return Route; + }(React__default.Component); + + { + Route.propTypes = { + children: propTypes.oneOfType([propTypes.func, propTypes.node]), + component: function component(props, propName) { + if (props[propName] && !reactIs_1(props[propName])) { + return new Error("Invalid prop 'component' supplied to 'Route': the prop is not a valid React component"); + } + }, + exact: propTypes.bool, + location: propTypes.object, + path: propTypes.oneOfType([propTypes.string, propTypes.arrayOf(propTypes.string)]), + render: propTypes.func, + sensitive: propTypes.bool, + strict: propTypes.bool + }; + + Route.prototype.componentDidMount = function () { + warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.component), "You should not use and in the same route; will be ignored") ; + warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.render), "You should not use and in the same route; will be ignored") ; + warning(!(this.props.component && this.props.render), "You should not use and in the same route; will be ignored") ; + }; + + Route.prototype.componentDidUpdate = function (prevProps) { + warning(!(this.props.location && !prevProps.location), ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no "location" prop and then provided one on a subsequent render.') ; + warning(!(!this.props.location && prevProps.location), ' elements should not change from controlled to uncontrolled (or vice versa). You provided a "location" prop initially but omitted it on a subsequent render.') ; + }; + } + + function _objectWithoutPropertiesLoose(source, excluded) { + if (source == null) return {}; + var target = {}; + var sourceKeys = Object.keys(source); + var key, i; + + for (i = 0; i < sourceKeys.length; i++) { + key = sourceKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + target[key] = source[key]; + } + + return target; + } + + function addLeadingSlash(path) { + return path.charAt(0) === "/" ? path : "/" + path; + } + + function addBasename(basename, location) { + if (!basename) return location; + return _extends({}, location, { + pathname: addLeadingSlash(basename) + location.pathname + }); + } + + function stripBasename(basename, location) { + if (!basename) return location; + var base = addLeadingSlash(basename); + if (location.pathname.indexOf(base) !== 0) return location; + return _extends({}, location, { + pathname: location.pathname.substr(base.length) + }); + } + + function createURL(location) { + return typeof location === "string" ? location : createPath(location); + } + + function staticHandler(methodName) { + return function () { + invariant(false, "You cannot %s with ") ; + }; + } + + function noop() {} + /** + * The public top-level API for a "static" , so-called because it + * can't actually change the current location. Instead, it just records + * location changes in a context object. Useful mainly in testing and + * server-rendering scenarios. + */ + + + var StaticRouter = + /*#__PURE__*/ + function (_React$Component) { + _inheritsLoose(StaticRouter, _React$Component); + + function StaticRouter() { + var _this; + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this; + + _this.handlePush = function (location) { + return _this.navigateTo(location, "PUSH"); + }; + + _this.handleReplace = function (location) { + return _this.navigateTo(location, "REPLACE"); + }; + + _this.handleListen = function () { + return noop; + }; + + _this.handleBlock = function () { + return noop; + }; + + return _this; + } + + var _proto = StaticRouter.prototype; + + _proto.navigateTo = function navigateTo(location, action) { + var _this$props = this.props, + _this$props$basename = _this$props.basename, + basename = _this$props$basename === void 0 ? "" : _this$props$basename, + _this$props$context = _this$props.context, + context = _this$props$context === void 0 ? {} : _this$props$context; + context.action = action; + context.location = addBasename(basename, createLocation(location)); + context.url = createURL(context.location); + }; + + _proto.render = function render() { + var _this$props2 = this.props, + _this$props2$basename = _this$props2.basename, + basename = _this$props2$basename === void 0 ? "" : _this$props2$basename, + _this$props2$context = _this$props2.context, + context = _this$props2$context === void 0 ? {} : _this$props2$context, + _this$props2$location = _this$props2.location, + location = _this$props2$location === void 0 ? "/" : _this$props2$location, + rest = _objectWithoutPropertiesLoose(_this$props2, ["basename", "context", "location"]); + + var history = { + createHref: function createHref(path) { + return addLeadingSlash(basename + createURL(path)); + }, + action: "POP", + location: stripBasename(basename, createLocation(location)), + push: this.handlePush, + replace: this.handleReplace, + go: staticHandler(), + goBack: staticHandler(), + goForward: staticHandler(), + listen: this.handleListen, + block: this.handleBlock + }; + return React__default.createElement(Router, _extends({}, rest, { + history: history, + staticContext: context + })); + }; + + return StaticRouter; + }(React__default.Component); + + { + StaticRouter.propTypes = { + basename: propTypes.string, + context: propTypes.object, + location: propTypes.oneOfType([propTypes.string, propTypes.object]) + }; + + StaticRouter.prototype.componentDidMount = function () { + warning(!this.props.history, " ignores the history prop. To use a custom history, " + "use `import { Router }` instead of `import { StaticRouter as Router }`.") ; + }; + } + + /** + * The public API for rendering the first that matches. + */ + + var Switch = + /*#__PURE__*/ + function (_React$Component) { + _inheritsLoose(Switch, _React$Component); + + function Switch() { + return _React$Component.apply(this, arguments) || this; + } + + var _proto = Switch.prototype; + + _proto.render = function render() { + var _this = this; + + return React__default.createElement(context.Consumer, null, function (context) { + !context ? invariant(false, "You should not use outside a ") : void 0; + var location = _this.props.location || context.location; + var element, match; // We use React.Children.forEach instead of React.Children.toArray().find() + // here because toArray adds keys to all child elements and we do not want + // to trigger an unmount/remount for two s that render the same + // component at different URLs. + + React__default.Children.forEach(_this.props.children, function (child) { + if (match == null && React__default.isValidElement(child)) { + element = child; + var path = child.props.path || child.props.from; + match = path ? matchPath(location.pathname, _extends({}, child.props, { + path: path + })) : context.match; + } + }); + return match ? React__default.cloneElement(element, { + location: location, + computedMatch: match + }) : null; + }); + }; + + return Switch; + }(React__default.Component); + + { + Switch.propTypes = { + children: propTypes.node, + location: propTypes.object + }; + + Switch.prototype.componentDidUpdate = function (prevProps) { + warning(!(this.props.location && !prevProps.location), ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no "location" prop and then provided one on a subsequent render.') ; + warning(!(!this.props.location && prevProps.location), ' elements should not change from controlled to uncontrolled (or vice versa). You provided a "location" prop initially but omitted it on a subsequent render.') ; + }; + } + + /** + * Copyright 2015, Yahoo! Inc. + * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. + */ + + var REACT_STATICS = { + childContextTypes: true, + contextType: true, + contextTypes: true, + defaultProps: true, + displayName: true, + getDefaultProps: true, + getDerivedStateFromError: true, + getDerivedStateFromProps: true, + mixins: true, + propTypes: true, + type: true + }; + + var KNOWN_STATICS = { + name: true, + length: true, + prototype: true, + caller: true, + callee: true, + arguments: true, + arity: true + }; + + var FORWARD_REF_STATICS = { + '$$typeof': true, + render: true, + defaultProps: true, + displayName: true, + propTypes: true + }; + + var MEMO_STATICS = { + '$$typeof': true, + compare: true, + defaultProps: true, + displayName: true, + propTypes: true, + type: true + }; + + var TYPE_STATICS = {}; + TYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS; + + function getStatics(component) { + if (reactIs.isMemo(component)) { + return MEMO_STATICS; + } + return TYPE_STATICS[component['$$typeof']] || REACT_STATICS; + } + + var defineProperty = Object.defineProperty; + var getOwnPropertyNames = Object.getOwnPropertyNames; + var getOwnPropertySymbols$1 = Object.getOwnPropertySymbols; + var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + var getPrototypeOf = Object.getPrototypeOf; + var objectPrototype = Object.prototype; + + function hoistNonReactStatics(targetComponent, sourceComponent, blacklist) { + if (typeof sourceComponent !== 'string') { + // don't hoist over string (html) components + + if (objectPrototype) { + var inheritedComponent = getPrototypeOf(sourceComponent); + if (inheritedComponent && inheritedComponent !== objectPrototype) { + hoistNonReactStatics(targetComponent, inheritedComponent, blacklist); + } + } + + var keys = getOwnPropertyNames(sourceComponent); + + if (getOwnPropertySymbols$1) { + keys = keys.concat(getOwnPropertySymbols$1(sourceComponent)); + } + + var targetStatics = getStatics(targetComponent); + var sourceStatics = getStatics(sourceComponent); + + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) { + var descriptor = getOwnPropertyDescriptor(sourceComponent, key); + try { + // Avoid failures from read-only properties + defineProperty(targetComponent, key, descriptor); + } catch (e) {} + } + } + + return targetComponent; + } + + return targetComponent; + } + + var hoistNonReactStatics_cjs = hoistNonReactStatics; + + /** + * A public higher-order component to access the imperative API + */ + + function withRouter(Component) { + var displayName = "withRouter(" + (Component.displayName || Component.name) + ")"; + + var C = function C(props) { + var wrappedComponentRef = props.wrappedComponentRef, + remainingProps = _objectWithoutPropertiesLoose(props, ["wrappedComponentRef"]); + + return React__default.createElement(context.Consumer, null, function (context) { + !context ? invariant(false, "You should not use <" + displayName + " /> outside a ") : void 0; + return React__default.createElement(Component, _extends({}, remainingProps, context, { + ref: wrappedComponentRef + })); + }); + }; + + C.displayName = displayName; + C.WrappedComponent = Component; + + { + C.propTypes = { + wrappedComponentRef: propTypes.oneOfType([propTypes.string, propTypes.func, propTypes.object]) + }; + } + + return hoistNonReactStatics_cjs(C, Component); + } + + var useContext = React__default.useContext; + function useHistory() { + { + !(typeof useContext === "function") ? invariant(false, "You must use React >= 16.8 in order to use useHistory()") : void 0; + } + + return useContext(historyContext); + } + function useLocation() { + { + !(typeof useContext === "function") ? invariant(false, "You must use React >= 16.8 in order to use useLocation()") : void 0; + } + + return useContext(context).location; + } + function useParams() { + { + !(typeof useContext === "function") ? invariant(false, "You must use React >= 16.8 in order to use useParams()") : void 0; + } + + var match = useContext(context).match; + return match ? match.params : {}; + } + function useRouteMatch(path) { + { + !(typeof useContext === "function") ? invariant(false, "You must use React >= 16.8 in order to use useRouteMatch()") : void 0; + } + + var location = useLocation(); + var match = useContext(context).match; + return path ? matchPath(location.pathname, path) : match; + } + + { + if (typeof window !== "undefined") { + var global$1 = window; + var key = "__react_router_build__"; + var buildNames = { + cjs: "CommonJS", + esm: "ES modules", + umd: "UMD" + }; + + if (global$1[key] && global$1[key] !== "umd") { + var initialBuildName = buildNames[global$1[key]]; + var secondaryBuildName = buildNames["umd"]; // TODO: Add link to article that explains in detail how to avoid + // loading 2 different builds. + + throw new Error("You are loading the " + secondaryBuildName + " build of React Router " + ("on a page that is already running the " + initialBuildName + " ") + "build, so things won't work right."); + } + + global$1[key] = "umd"; + } + } + + exports.MemoryRouter = MemoryRouter; + exports.Prompt = Prompt; + exports.Redirect = Redirect; + exports.Route = Route; + exports.Router = Router; + exports.StaticRouter = StaticRouter; + exports.Switch = Switch; + exports.__HistoryContext = historyContext; + exports.__RouterContext = context; + exports.generatePath = generatePath; + exports.matchPath = matchPath; + exports.useHistory = useHistory; + exports.useLocation = useLocation; + exports.useParams = useParams; + exports.useRouteMatch = useRouteMatch; + exports.withRouter = withRouter; + + Object.defineProperty(exports, '__esModule', { value: true }); + +})); +//# sourceMappingURL=react-router.js.map diff --git a/node_modules/react-router/umd/react-router.js.map b/node_modules/react-router/umd/react-router.js.map new file mode 100644 index 0000000..0c0f4e5 --- /dev/null +++ b/node_modules/react-router/umd/react-router.js.map @@ -0,0 +1 @@ +{"version":3,"file":"react-router.js","sources":["../../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../../node_modules/react-is/cjs/react-is.production.min.js","../../node_modules/react-is/cjs/react-is.development.js","../../node_modules/react-is/index.js","../../node_modules/object-assign/index.js","../../node_modules/prop-types/lib/ReactPropTypesSecret.js","../../node_modules/prop-types/checkPropTypes.js","../../node_modules/prop-types/factoryWithTypeCheckers.js","../../node_modules/prop-types/index.js","../../node_modules/@babel/runtime/helpers/esm/extends.js","../../node_modules/resolve-pathname/index.js","../../node_modules/value-equal/index.js","../../node_modules/tiny-warning/dist/tiny-warning.esm.js","../../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","../../node_modules/history/esm/history.js","../../node_modules/mini-create-react-context/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../../node_modules/mini-create-react-context/dist/esm/index.js","../modules/createNameContext.js","../modules/HistoryContext.js","../modules/RouterContext.js","../modules/Router.js","../modules/MemoryRouter.js","../modules/Lifecycle.js","../modules/Prompt.js","../../node_modules/path-to-regexp/node_modules/isarray/index.js","../../node_modules/path-to-regexp/index.js","../modules/generatePath.js","../modules/Redirect.js","../modules/matchPath.js","../modules/Route.js","../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../modules/StaticRouter.js","../modules/Switch.js","../../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../modules/withRouter.js","../modules/hooks.js","../modules/index.js"],"sourcesContent":["export default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","/** @license React v16.9.0\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';Object.defineProperty(exports,\"__esModule\",{value:!0});\nvar b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?Symbol.for(\"react.suspense_list\"):\n60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.fundamental\"):60117,w=b?Symbol.for(\"react.responder\"):60118;function x(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case h:return a;default:return u}}case t:case r:case d:return u}}}function y(a){return x(a)===m}exports.typeOf=x;exports.AsyncMode=l;\nexports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===v||a.$$typeof===w)};exports.isAsyncMode=function(a){return y(a)||x(a)===l};exports.isConcurrentMode=y;exports.isContextConsumer=function(a){return x(a)===k};exports.isContextProvider=function(a){return x(a)===h};\nexports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return x(a)===n};exports.isFragment=function(a){return x(a)===e};exports.isLazy=function(a){return x(a)===t};exports.isMemo=function(a){return x(a)===r};exports.isPortal=function(a){return x(a)===d};exports.isProfiler=function(a){return x(a)===g};exports.isStrictMode=function(a){return x(a)===f};exports.isSuspense=function(a){return x(a)===p};\n","/** @license React v16.9.0\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\n\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace;\n// TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' ||\n // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE);\n}\n\n/**\n * Forked from fbjs/warning:\n * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js\n *\n * Only change is we use console.warn instead of console.error,\n * and do nothing when 'console' is not supported.\n * This really simplifies the code.\n * ---\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar lowPriorityWarning = function () {};\n\n{\n var printWarning = function (format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.warn(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n lowPriorityWarning = function (condition, format) {\n if (format === undefined) {\n throw new Error('`lowPriorityWarning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nvar lowPriorityWarning$1 = lowPriorityWarning;\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n default:\n return $$typeof;\n }\n }\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n}\n\n// AsyncMode is deprecated along with isAsyncMode\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\n\nvar hasWarnedAboutDeprecatedIsAsyncMode = false;\n\n// AsyncMode should be deprecated\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true;\n lowPriorityWarning$1(false, 'The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.typeOf = typeOf;\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isValidElementType = isValidElementType;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar has = Function.call.bind(Object.prototype.hasOwnProperty);\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to) {\n var from = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n var toParts = to && to.split('/') || [];\n var fromParts = from && from.split('/') || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash = void 0;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) {\n fromParts.unshift('..');\n }if (mustEndAbs && fromParts[0] !== '' && (!fromParts[0] || !isAbsolute(fromParts[0]))) fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction valueEqual(a, b) {\n if (a === b) return true;\n\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n return Array.isArray(b) && a.length === b.length && a.every(function (item, index) {\n return valueEqual(item, b[index]);\n });\n }\n\n var aType = typeof a === 'undefined' ? 'undefined' : _typeof(a);\n var bType = typeof b === 'undefined' ? 'undefined' : _typeof(b);\n\n if (aType !== bType) return false;\n\n if (aType === 'object') {\n var aValue = a.valueOf();\n var bValue = b.valueOf();\n\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n var aKeys = Object.keys(a);\n var bKeys = Object.keys(b);\n\n if (aKeys.length !== bKeys.length) return false;\n\n return aKeys.every(function (key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n\nexport default valueEqual;","var isProduction = process.env.NODE_ENV === 'production';\nfunction warning(condition, message) {\n if (!isProduction) {\n if (condition) {\n return;\n }\n\n var text = \"Warning: \" + message;\n\n if (typeof console !== 'undefined') {\n console.warn(text);\n }\n\n try {\n throw Error(text);\n } catch (x) {}\n }\n}\n\nexport default warning;\n","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n\n if (isProduction) {\n throw new Error(prefix);\n } else {\n throw new Error(prefix + \": \" + (message || ''));\n }\n}\n\nexport default invariant;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return new RegExp('^' + prefix + '(\\\\/|\\\\?|#|$)', 'i').test(path);\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n var hashIndex = window.location.href.indexOf('#');\n window.location.replace(window.location.href.slice(0, hashIndex >= 0 ? hashIndex : 0) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n return '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","export default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","import React, { Component } from 'react';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport warning from 'tiny-warning';\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {};\n\nfunction getUniqueId() {\n var key = '__global_unique_id__';\n return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1;\n}\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + getUniqueId() + '__';\n\n var Provider = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Provider, _Component);\n\n function Provider() {\n var _this;\n\n _this = _Component.apply(this, arguments) || this;\n _this.emitter = createEventEmitter(_this.props.value);\n return _this;\n }\n\n var _proto = Provider.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0;\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (process.env.NODE_ENV !== 'production') {\n warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: ' + changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes.object.isRequired, _Provider$childContex);\n\n var Consumer = /*#__PURE__*/function (_Component2) {\n _inheritsLoose(Consumer, _Component2);\n\n function Consumer() {\n var _this2;\n\n _this2 = _Component2.apply(this, arguments) || this;\n _this2.state = {\n value: _this2.getValue()\n };\n\n _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n };\n\n return _this2;\n }\n\n var _proto2 = Consumer.prototype;\n\n _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n _proto2.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n _proto2.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = PropTypes.object, _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nvar index = React.createContext || createReactContext;\n\nexport default index;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nexport default createNamedContext;\n","import createNamedContext from \"./createNameContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport HistoryContext from \"./HistoryContext.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n } else {\n this._pendingLocation = location;\n }\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) this.unlisten();\n }\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change \"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\n/**\n * The public API for a that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for prompting the user before navigating away from a screen.\n */\nfunction Prompt({ message, when = true }) {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n if (!when || context.staticContext) return null;\n\n const method = context.history.block;\n\n return (\n {\n self.release = method(message);\n }}\n onUpdate={(self, prevProps) => {\n if (prevProps.message !== message) {\n self.release();\n self.release = method(message);\n }\n }}\n onUnmount={self => {\n self.release();\n }}\n message={message}\n />\n );\n }}\n \n );\n}\n\nif (__DEV__) {\n const messageType = PropTypes.oneOfType([PropTypes.func, PropTypes.string]);\n\n Prompt.propTypes = {\n when: PropTypes.bool,\n message: messageType.isRequired\n };\n}\n\nexport default Prompt;\n","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = res[2] || defaultDelimiter\n var pattern = capture || group\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options))\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$')\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n\n const generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\nfunction generatePath(path = \"/\", params = {}) {\n return path === \"/\" ? path : compilePath(path)(params, { pretty: true });\n}\n\nexport default generatePath;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, locationsAreEqual } from \"history\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle.js\";\nimport RouterContext from \"./RouterContext.js\";\nimport generatePath from \"./generatePath.js\";\n\n/**\n * The public API for navigating programmatically with a component.\n */\nfunction Redirect({ computedMatch, to, push = false }) {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history, staticContext } = context;\n\n const method = push ? history.push : history.replace;\n const location = createLocation(\n computedMatch\n ? typeof to === \"string\"\n ? generatePath(to, computedMatch.params)\n : {\n ...to,\n pathname: generatePath(to.pathname, computedMatch.params)\n }\n : to\n );\n\n // When rendering in a static context,\n // set the new location immediately.\n if (staticContext) {\n method(location);\n return null;\n }\n\n return (\n {\n method(location);\n }}\n onUpdate={(self, prevProps) => {\n const prevLocation = createLocation(prevProps.to);\n if (\n !locationsAreEqual(prevLocation, {\n ...location,\n key: prevLocation.key\n })\n ) {\n method(location);\n }\n }}\n to={to}\n />\n );\n }}\n \n );\n}\n\nif (__DEV__) {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nexport default Redirect;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && children.length === 0) {\n children = null;\n }\n\n return (\n \n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n \n );\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use and in the same route; will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with \", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return ;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\n/**\n * The public API for rendering the first that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","'use strict';\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar ReactIs = require('react-is');\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\n\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\n\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\n\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\n\nvar TYPE_STATICS = {};\nTYPE_STATICS[ReactIs.ForwardRef] = FORWARD_REF_STATICS;\n\nfunction getStatics(component) {\n if (ReactIs.isMemo(component)) {\n return MEMO_STATICS;\n }\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\n\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n\n return targetComponent;\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport hoistStatics from \"hoist-non-react-statics\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * A public higher-order component to access the imperative API\n */\nfunction withRouter(Component) {\n const displayName = `withRouter(${Component.displayName || Component.name})`;\n const C = props => {\n const { wrappedComponentRef, ...remainingProps } = props;\n\n return (\n \n {context => {\n invariant(\n context,\n `You should not use <${displayName} /> outside a `\n );\n return (\n \n );\n }}\n \n );\n };\n\n C.displayName = displayName;\n C.WrappedComponent = Component;\n\n if (__DEV__) {\n C.propTypes = {\n wrappedComponentRef: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.object\n ])\n };\n }\n\n return hoistStatics(C, Component);\n}\n\nexport default withRouter;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport Context from \"./RouterContext.js\";\nimport HistoryContext from \"./HistoryContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(HistoryContext);\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(Context).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(Context).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n const location = useLocation();\n const match = useContext(Context).match;\n\n return path ? matchPath(location.pathname, path) : match;\n}\n","if (__DEV__) {\n if (typeof window !== \"undefined\") {\n const global = window;\n const key = \"__react_router_build__\";\n const buildNames = { cjs: \"CommonJS\", esm: \"ES modules\", umd: \"UMD\" };\n\n if (global[key] && global[key] !== process.env.BUILD_FORMAT) {\n const initialBuildName = buildNames[global[key]];\n const secondaryBuildName = buildNames[process.env.BUILD_FORMAT];\n\n // TODO: Add link to article that explains in detail how to avoid\n // loading 2 different builds.\n throw new Error(\n `You are loading the ${secondaryBuildName} build of React Router ` +\n `on a page that is already running the ${initialBuildName} ` +\n `build, so things won't work right.`\n );\n }\n\n global[key] = process.env.BUILD_FORMAT;\n }\n}\n\nexport { default as MemoryRouter } from \"./MemoryRouter.js\";\nexport { default as Prompt } from \"./Prompt.js\";\nexport { default as Redirect } from \"./Redirect.js\";\nexport { default as Route } from \"./Route.js\";\nexport { default as Router } from \"./Router.js\";\nexport { default as StaticRouter } from \"./StaticRouter.js\";\nexport { default as Switch } from \"./Switch.js\";\nexport { default as generatePath } from \"./generatePath.js\";\nexport { default as matchPath } from \"./matchPath.js\";\nexport { default as withRouter } from \"./withRouter.js\";\n\nimport { useHistory, useLocation, useParams, useRouteMatch } from \"./hooks.js\";\nexport { useHistory, useLocation, useParams, useRouteMatch };\n\nexport { default as __HistoryContext } from \"./HistoryContext.js\";\nexport { default as __RouterContext } from \"./RouterContext.js\";\n"],"names":["require$$1","ReactPropTypesSecret","require$$0","has","printWarning","ReactIs","assign","checkPropTypes","_inheritsLoose","Component","PropTypes","React","createNamedContext","name","context","createContext","displayName","historyContext","Router","computeRootMatch","pathname","path","url","params","isExact","props","state","location","history","_isMounted","_pendingLocation","staticContext","unlisten","listen","setState","componentDidMount","componentWillUnmount","render","RouterContext","match","HistoryContext","children","propTypes","node","object","isRequired","prototype","componentDidUpdate","prevProps","warning","MemoryRouter","createHistory","initialEntries","array","initialIndex","number","getUserConfirmation","func","keyLength","Lifecycle","onMount","call","onUpdate","onUnmount","Prompt","message","when","invariant","method","block","self","release","messageType","oneOfType","string","bool","cache","cacheLimit","cacheCount","compilePath","generator","pathToRegexp","compile","generatePath","pretty","Redirect","computedMatch","to","push","replace","createLocation","prevLocation","locationsAreEqual","key","from","options","cacheKey","end","strict","sensitive","pathCache","keys","regexp","result","matchPath","Array","isArray","exact","paths","concat","reduce","matched","exec","values","memo","index","isEmptyChildren","Children","count","evalChildrenDev","value","undefined","Route","component","length","createElement","propName","isValidElementType","Error","arrayOf","addLeadingSlash","charAt","addBasename","basename","stripBasename","base","indexOf","substr","createURL","createPath","staticHandler","methodName","noop","StaticRouter","handlePush","navigateTo","handleReplace","handleListen","handleBlock","action","rest","createHref","go","goBack","goForward","Switch","element","forEach","child","isValidElement","cloneElement","getOwnPropertySymbols","withRouter","C","wrappedComponentRef","remainingProps","WrappedComponent","hoistStatics","useContext","useHistory","useLocation","Context","useParams","useRouteMatch","window","global","buildNames","cjs","esm","umd","process","initialBuildName","secondaryBuildName"],"mappings":";;;;;;;;EAAe,SAAS,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE;EAC7D,EAAE,QAAQ,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;EAC3D,EAAE,QAAQ,CAAC,SAAS,CAAC,WAAW,GAAG,QAAQ,CAAC;EAC5C,EAAE,QAAQ,CAAC,SAAS,GAAG,UAAU,CAAC;EAClC;;;;;;;;;;GAAC;ACJD,EASa,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;EACpE,IAAI,CAAC,CAAC,UAAU,GAAG,OAAO,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC;EAC1gB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,OAAO,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;EAC3e,sBAAsB,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;EACjP,0BAA0B,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,QAAQ,GAAG,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;EACpd,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,QAAQ,GAAG,OAAO,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACd7c;;;AAaA,EAA2C;IACzC,CAAC,WAAW;AACd;EAEA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;;;;EAI9D,IAAI,SAAS,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,GAAG,CAAC;;EAE3D,IAAI,kBAAkB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,MAAM,CAAC;EAC1E,IAAI,iBAAiB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,MAAM,CAAC;EACxE,IAAI,mBAAmB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC;EAC5E,IAAI,sBAAsB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,MAAM,CAAC;EAClF,IAAI,mBAAmB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC;EAC5E,IAAI,mBAAmB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC;EAC5E,IAAI,kBAAkB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,MAAM,CAAC;;;EAG1E,IAAI,qBAAqB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,MAAM,CAAC;EAChF,IAAI,0BAA0B,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,GAAG,MAAM,CAAC;EAC1F,IAAI,sBAAsB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,MAAM,CAAC;EAClF,IAAI,mBAAmB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC;EAC5E,IAAI,wBAAwB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,GAAG,MAAM,CAAC;EACtF,IAAI,eAAe,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC;EACpE,IAAI,eAAe,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC;EACpE,IAAI,sBAAsB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,MAAM,CAAC;EAClF,IAAI,oBAAoB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,MAAM,CAAC;;EAE9E,SAAS,kBAAkB,CAAC,IAAI,EAAE;IAChC,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,UAAU;;IAE7D,IAAI,KAAK,mBAAmB,IAAI,IAAI,KAAK,0BAA0B,IAAI,IAAI,KAAK,mBAAmB,IAAI,IAAI,KAAK,sBAAsB,IAAI,IAAI,KAAK,mBAAmB,IAAI,IAAI,KAAK,wBAAwB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,CAAC,QAAQ,KAAK,eAAe,IAAI,IAAI,CAAC,QAAQ,KAAK,eAAe,IAAI,IAAI,CAAC,QAAQ,KAAK,mBAAmB,IAAI,IAAI,CAAC,QAAQ,KAAK,kBAAkB,IAAI,IAAI,CAAC,QAAQ,KAAK,sBAAsB,IAAI,IAAI,CAAC,QAAQ,KAAK,sBAAsB,IAAI,IAAI,CAAC,QAAQ,KAAK,oBAAoB,CAAC,CAAC;GACzhB;;;;;;;;;;;;;;;;EAgBD,IAAI,kBAAkB,GAAG,YAAY,EAAE,CAAC;;EAExC;IACE,IAAI,YAAY,GAAG,UAAU,MAAM,EAAE;MACnC,KAAK,IAAI,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE;QACtG,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;OAClC;;MAED,IAAI,QAAQ,GAAG,CAAC,CAAC;MACjB,IAAI,OAAO,GAAG,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,YAAY;QAC5D,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;OACzB,CAAC,CAAC;MACH,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE;QAClC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;OACvB;MACD,IAAI;;;;QAIF,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;OAC1B,CAAC,OAAO,CAAC,EAAE,EAAE;KACf,CAAC;;IAEF,kBAAkB,GAAG,UAAU,SAAS,EAAE,MAAM,EAAE;MAChD,IAAI,MAAM,KAAK,SAAS,EAAE;QACxB,MAAM,IAAI,KAAK,CAAC,sEAAsE,GAAG,kBAAkB,CAAC,CAAC;OAC9G;MACD,IAAI,CAAC,SAAS,EAAE;QACd,KAAK,IAAI,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,IAAI,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,EAAE,EAAE;UAC7G,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;SACpC;;QAED,YAAY,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;OACtD;KACF,CAAC;GACH;;EAED,IAAI,oBAAoB,GAAG,kBAAkB,CAAC;;EAE9C,SAAS,MAAM,CAAC,MAAM,EAAE;IACtB,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE;MACjD,IAAI,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;MAC/B,QAAQ,QAAQ;QACd,KAAK,kBAAkB;UACrB,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;;UAEvB,QAAQ,IAAI;YACV,KAAK,qBAAqB,CAAC;YAC3B,KAAK,0BAA0B,CAAC;YAChC,KAAK,mBAAmB,CAAC;YACzB,KAAK,mBAAmB,CAAC;YACzB,KAAK,sBAAsB,CAAC;YAC5B,KAAK,mBAAmB;cACtB,OAAO,IAAI,CAAC;YACd;cACE,IAAI,YAAY,GAAG,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC;;cAEzC,QAAQ,YAAY;gBAClB,KAAK,kBAAkB,CAAC;gBACxB,KAAK,sBAAsB,CAAC;gBAC5B,KAAK,mBAAmB;kBACtB,OAAO,YAAY,CAAC;gBACtB;kBACE,OAAO,QAAQ,CAAC;eACnB;WACJ;QACH,KAAK,eAAe,CAAC;QACrB,KAAK,eAAe,CAAC;QACrB,KAAK,iBAAiB;UACpB,OAAO,QAAQ,CAAC;OACnB;KACF;;IAED,OAAO,SAAS,CAAC;GAClB;;;EAGD,IAAI,SAAS,GAAG,qBAAqB,CAAC;EACtC,IAAI,cAAc,GAAG,0BAA0B,CAAC;EAChD,IAAI,eAAe,GAAG,kBAAkB,CAAC;EACzC,IAAI,eAAe,GAAG,mBAAmB,CAAC;EAC1C,IAAI,OAAO,GAAG,kBAAkB,CAAC;EACjC,IAAI,UAAU,GAAG,sBAAsB,CAAC;EACxC,IAAI,QAAQ,GAAG,mBAAmB,CAAC;EACnC,IAAI,IAAI,GAAG,eAAe,CAAC;EAC3B,IAAI,IAAI,GAAG,eAAe,CAAC;EAC3B,IAAI,MAAM,GAAG,iBAAiB,CAAC;EAC/B,IAAI,QAAQ,GAAG,mBAAmB,CAAC;EACnC,IAAI,UAAU,GAAG,sBAAsB,CAAC;EACxC,IAAI,QAAQ,GAAG,mBAAmB,CAAC;;EAEnC,IAAI,mCAAmC,GAAG,KAAK,CAAC;;;EAGhD,SAAS,WAAW,CAAC,MAAM,EAAE;IAC3B;MACE,IAAI,CAAC,mCAAmC,EAAE;QACxC,mCAAmC,GAAG,IAAI,CAAC;QAC3C,oBAAoB,CAAC,KAAK,EAAE,uDAAuD,GAAG,4DAA4D,GAAG,gEAAgE,CAAC,CAAC;OACxN;KACF;IACD,OAAO,gBAAgB,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,qBAAqB,CAAC;GAC7E;EACD,SAAS,gBAAgB,CAAC,MAAM,EAAE;IAChC,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,0BAA0B,CAAC;GACtD;EACD,SAAS,iBAAiB,CAAC,MAAM,EAAE;IACjC,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,kBAAkB,CAAC;GAC9C;EACD,SAAS,iBAAiB,CAAC,MAAM,EAAE;IACjC,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,mBAAmB,CAAC;GAC/C;EACD,SAAS,SAAS,CAAC,MAAM,EAAE;IACzB,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,QAAQ,KAAK,kBAAkB,CAAC;GAChG;EACD,SAAS,YAAY,CAAC,MAAM,EAAE;IAC5B,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,sBAAsB,CAAC;GAClD;EACD,SAAS,UAAU,CAAC,MAAM,EAAE;IAC1B,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,mBAAmB,CAAC;GAC/C;EACD,SAAS,MAAM,CAAC,MAAM,EAAE;IACtB,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,eAAe,CAAC;GAC3C;EACD,SAAS,MAAM,CAAC,MAAM,EAAE;IACtB,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,eAAe,CAAC;GAC3C;EACD,SAAS,QAAQ,CAAC,MAAM,EAAE;IACxB,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,iBAAiB,CAAC;GAC7C;EACD,SAAS,UAAU,CAAC,MAAM,EAAE;IAC1B,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,mBAAmB,CAAC;GAC/C;EACD,SAAS,YAAY,CAAC,MAAM,EAAE;IAC5B,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,sBAAsB,CAAC;GAClD;EACD,SAAS,UAAU,CAAC,MAAM,EAAE;IAC1B,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,mBAAmB,CAAC;GAC/C;;EAED,cAAc,GAAG,MAAM,CAAC;EACxB,iBAAiB,GAAG,SAAS,CAAC;EAC9B,sBAAsB,GAAG,cAAc,CAAC;EACxC,uBAAuB,GAAG,eAAe,CAAC;EAC1C,uBAAuB,GAAG,eAAe,CAAC;EAC1C,eAAe,GAAG,OAAO,CAAC;EAC1B,kBAAkB,GAAG,UAAU,CAAC;EAChC,gBAAgB,GAAG,QAAQ,CAAC;EAC5B,YAAY,GAAG,IAAI,CAAC;EACpB,YAAY,GAAG,IAAI,CAAC;EACpB,cAAc,GAAG,MAAM,CAAC;EACxB,gBAAgB,GAAG,QAAQ,CAAC;EAC5B,kBAAkB,GAAG,UAAU,CAAC;EAChC,gBAAgB,GAAG,QAAQ,CAAC;EAC5B,0BAA0B,GAAG,kBAAkB,CAAC;EAChD,mBAAmB,GAAG,WAAW,CAAC;EAClC,wBAAwB,GAAG,gBAAgB,CAAC;EAC5C,yBAAyB,GAAG,iBAAiB,CAAC;EAC9C,yBAAyB,GAAG,iBAAiB,CAAC;EAC9C,iBAAiB,GAAG,SAAS,CAAC;EAC9B,oBAAoB,GAAG,YAAY,CAAC;EACpC,kBAAkB,GAAG,UAAU,CAAC;EAChC,cAAc,GAAG,MAAM,CAAC;EACxB,cAAc,GAAG,MAAM,CAAC;EACxB,gBAAgB,GAAG,QAAQ,CAAC;EAC5B,kBAAkB,GAAG,UAAU,CAAC;EAChC,oBAAoB,GAAG,YAAY,CAAC;EACpC,kBAAkB,GAAG,UAAU,CAAC;KAC7B,GAAG,CAAC;GACN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvOD;AAEA,EAEO;IACL,cAAc,GAAGA,mBAAwC,CAAC;GAC3D;;;;ECND;;;;;;EAQA,IAAI,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,CAAC;EACzD,IAAI,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;EACrD,IAAI,gBAAgB,GAAG,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC;;EAE7D,SAAS,QAAQ,CAAC,GAAG,EAAE;GACtB,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE;IACtC,MAAM,IAAI,SAAS,CAAC,uDAAuD,CAAC,CAAC;IAC7E;;GAED,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;GACnB;;EAED,SAAS,eAAe,GAAG;GAC1B,IAAI;IACH,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;KACnB,OAAO,KAAK,CAAC;KACb;;;;;IAKD,IAAI,KAAK,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAChB,IAAI,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;KACjD,OAAO,KAAK,CAAC;KACb;;;IAGD,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;KAC5B,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;KACxC;IACD,IAAI,MAAM,GAAG,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;KAC/D,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;KAChB,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,YAAY,EAAE;KACrC,OAAO,KAAK,CAAC;KACb;;;IAGD,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,MAAM,EAAE;KAC1D,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;KACvB,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;MAChD,sBAAsB,EAAE;KACzB,OAAO,KAAK,CAAC;KACb;;IAED,OAAO,IAAI,CAAC;IACZ,CAAC,OAAO,GAAG,EAAE;;IAEb,OAAO,KAAK,CAAC;IACb;GACD;;EAED,gBAAc,GAAG,eAAe,EAAE,GAAG,MAAM,CAAC,MAAM,GAAG,UAAU,MAAM,EAAE,MAAM,EAAE;GAC9E,IAAI,IAAI,CAAC;GACT,IAAI,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;GAC1B,IAAI,OAAO,CAAC;;GAEZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC1C,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;;IAE5B,KAAK,IAAI,GAAG,IAAI,IAAI,EAAE;KACrB,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;MACnC,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;MACpB;KACD;;IAED,IAAI,qBAAqB,EAAE;KAC1B,OAAO,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;KACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;MACxC,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;OAC5C,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;OAClC;MACD;KACD;IACD;;GAED,OAAO,EAAE,CAAC;GACV,CAAC;;ECzFF;;;;;;;EASA,IAAI,oBAAoB,GAAG,8CAA8C,CAAC;;EAE1E,0BAAc,GAAG,oBAAoB,CAAC;;ECFtC,IAAI,YAAY,GAAG,WAAW,EAAE,CAAC;;AAEjC,EAA2C;IACzC,IAAIC,sBAAoB,GAAGC,sBAAqC,CAAC;IACjE,IAAI,kBAAkB,GAAG,EAAE,CAAC;IAC5B,IAAI,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;;IAE9D,YAAY,GAAG,SAAS,IAAI,EAAE;MAC5B,IAAI,OAAO,GAAG,WAAW,GAAG,IAAI,CAAC;MACjC,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE;QAClC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;OACxB;MACD,IAAI;;;;QAIF,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;OAC1B,CAAC,OAAO,CAAC,EAAE,EAAE;KACf,CAAC;GACH;;;;;;;;;;;;;EAaD,SAAS,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE;IAC5E,AAA2C;MACzC,KAAK,IAAI,YAAY,IAAI,SAAS,EAAE;QAClC,IAAI,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE;UAChC,IAAI,KAAK,CAAC;;;;UAIV,IAAI;;;YAGF,IAAI,OAAO,SAAS,CAAC,YAAY,CAAC,KAAK,UAAU,EAAE;cACjD,IAAI,GAAG,GAAG,KAAK;gBACb,CAAC,aAAa,IAAI,aAAa,IAAI,IAAI,GAAG,QAAQ,GAAG,SAAS,GAAG,YAAY,GAAG,gBAAgB;gBAChG,8EAA8E,GAAG,OAAO,SAAS,CAAC,YAAY,CAAC,GAAG,IAAI;eACvH,CAAC;cACF,GAAG,CAAC,IAAI,GAAG,qBAAqB,CAAC;cACjC,MAAM,GAAG,CAAC;aACX;YACD,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAED,sBAAoB,CAAC,CAAC;WAC5G,CAAC,OAAO,EAAE,EAAE;YACX,KAAK,GAAG,EAAE,CAAC;WACZ;UACD,IAAI,KAAK,IAAI,EAAE,KAAK,YAAY,KAAK,CAAC,EAAE;YACtC,YAAY;cACV,CAAC,aAAa,IAAI,aAAa,IAAI,0BAA0B;cAC7D,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,iCAAiC;cAClE,2DAA2D,GAAG,OAAO,KAAK,GAAG,IAAI;cACjF,iEAAiE;cACjE,gEAAgE;cAChE,iCAAiC;aAClC,CAAC;WACH;UACD,IAAI,KAAK,YAAY,KAAK,IAAI,EAAE,KAAK,CAAC,OAAO,IAAI,kBAAkB,CAAC,EAAE;;;YAGpE,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;;YAEzC,IAAI,KAAK,GAAG,QAAQ,GAAG,QAAQ,EAAE,GAAG,EAAE,CAAC;;YAEvC,YAAY;cACV,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,IAAI,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;aAChF,CAAC;WACH;SACF;OACF;KACF;GACF;;;;;;;EAOD,cAAc,CAAC,iBAAiB,GAAG,WAAW;IAC5C,AAA2C;MACzC,kBAAkB,GAAG,EAAE,CAAC;KACzB;IACF;;EAED,oBAAc,GAAG,cAAc,CAAC;;ECtFhC,IAAIE,KAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;EAC9D,IAAIC,cAAY,GAAG,WAAW,EAAE,CAAC;;AAEjC,EAA2C;IACzCA,cAAY,GAAG,SAAS,IAAI,EAAE;MAC5B,IAAI,OAAO,GAAG,WAAW,GAAG,IAAI,CAAC;MACjC,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE;QAClC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;OACxB;MACD,IAAI;;;;QAIF,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;OAC1B,CAAC,OAAO,CAAC,EAAE,EAAE;KACf,CAAC;GACH;;EAED,SAAS,4BAA4B,GAAG;IACtC,OAAO,IAAI,CAAC;GACb;;EAED,2BAAc,GAAG,SAAS,cAAc,EAAE,mBAAmB,EAAE;;IAE7D,IAAI,eAAe,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,QAAQ,CAAC;IACtE,IAAI,oBAAoB,GAAG,YAAY,CAAC;;;;;;;;;;;;;;;;IAgBxC,SAAS,aAAa,CAAC,aAAa,EAAE;MACpC,IAAI,UAAU,GAAG,aAAa,KAAK,eAAe,IAAI,aAAa,CAAC,eAAe,CAAC,IAAI,aAAa,CAAC,oBAAoB,CAAC,CAAC,CAAC;MAC7H,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE;QACpC,OAAO,UAAU,CAAC;OACnB;KACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAiDD,IAAI,SAAS,GAAG,eAAe,CAAC;;;;IAIhC,IAAI,cAAc,GAAG;MACnB,KAAK,EAAE,0BAA0B,CAAC,OAAO,CAAC;MAC1C,IAAI,EAAE,0BAA0B,CAAC,SAAS,CAAC;MAC3C,IAAI,EAAE,0BAA0B,CAAC,UAAU,CAAC;MAC5C,MAAM,EAAE,0BAA0B,CAAC,QAAQ,CAAC;MAC5C,MAAM,EAAE,0BAA0B,CAAC,QAAQ,CAAC;MAC5C,MAAM,EAAE,0BAA0B,CAAC,QAAQ,CAAC;MAC5C,MAAM,EAAE,0BAA0B,CAAC,QAAQ,CAAC;;MAE5C,GAAG,EAAE,oBAAoB,EAAE;MAC3B,OAAO,EAAE,wBAAwB;MACjC,OAAO,EAAE,wBAAwB,EAAE;MACnC,WAAW,EAAE,4BAA4B,EAAE;MAC3C,UAAU,EAAE,yBAAyB;MACrC,IAAI,EAAE,iBAAiB,EAAE;MACzB,QAAQ,EAAE,yBAAyB;MACnC,KAAK,EAAE,qBAAqB;MAC5B,SAAS,EAAE,sBAAsB;MACjC,KAAK,EAAE,sBAAsB;MAC7B,KAAK,EAAE,4BAA4B;KACpC,CAAC;;;;;;;IAOF,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;;MAEhB,IAAI,CAAC,KAAK,CAAC,EAAE;;;QAGX,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;OACnC,MAAM;;QAEL,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;OAC3B;KACF;;;;;;;;;;IAUD,SAAS,aAAa,CAAC,OAAO,EAAE;MAC9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;MACvB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;KACjB;;IAED,aAAa,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;;IAE1C,SAAS,0BAA0B,CAAC,QAAQ,EAAE;MAC5C,AAA2C;QACzC,IAAI,uBAAuB,GAAG,EAAE,CAAC;QACjC,IAAI,0BAA0B,GAAG,CAAC,CAAC;OACpC;MACD,SAAS,SAAS,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE;QAC7F,aAAa,GAAG,aAAa,IAAI,SAAS,CAAC;QAC3C,YAAY,GAAG,YAAY,IAAI,QAAQ,CAAC;;QAExC,IAAI,MAAM,KAAKH,sBAAoB,EAAE;UACnC,IAAI,mBAAmB,EAAE;;YAEvB,IAAI,GAAG,GAAG,IAAI,KAAK;cACjB,sFAAsF;cACtF,iDAAiD;cACjD,gDAAgD;aACjD,CAAC;YACF,GAAG,CAAC,IAAI,GAAG,qBAAqB,CAAC;YACjC,MAAM,GAAG,CAAC;WACX,MAAM,IAAI,CAAyC,OAAO,OAAO,KAAK,WAAW,EAAE;;YAElF,IAAI,QAAQ,GAAG,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;YAC9C;cACE,CAAC,uBAAuB,CAAC,QAAQ,CAAC;;cAElC,0BAA0B,GAAG,CAAC;cAC9B;cACAG,cAAY;gBACV,wDAAwD;gBACxD,oBAAoB,GAAG,YAAY,GAAG,aAAa,GAAG,aAAa,IAAI,wBAAwB;gBAC/F,yDAAyD;gBACzD,gEAAgE;gBAChE,+DAA+D,GAAG,cAAc;eACjF,CAAC;cACF,uBAAuB,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;cACzC,0BAA0B,EAAE,CAAC;aAC9B;WACF;SACF;QACD,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE;UAC3B,IAAI,UAAU,EAAE;YACd,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;cAC5B,OAAO,IAAI,aAAa,CAAC,MAAM,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,0BAA0B,IAAI,MAAM,GAAG,aAAa,GAAG,6BAA6B,CAAC,CAAC,CAAC;aAC3J;YACD,OAAO,IAAI,aAAa,CAAC,MAAM,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,6BAA6B,IAAI,GAAG,GAAG,aAAa,GAAG,kCAAkC,CAAC,CAAC,CAAC;WAChK;UACD,OAAO,IAAI,CAAC;SACb,MAAM;UACL,OAAO,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;SACzE;OACF;;MAED,IAAI,gBAAgB,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;MACnD,gBAAgB,CAAC,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;;MAEzD,OAAO,gBAAgB,CAAC;KACzB;;IAED,SAAS,0BAA0B,CAAC,YAAY,EAAE;MAChD,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE;QAChF,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChC,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;QACtC,IAAI,QAAQ,KAAK,YAAY,EAAE;;;;UAI7B,IAAI,WAAW,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;;UAE5C,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,YAAY,IAAI,GAAG,GAAG,WAAW,GAAG,iBAAiB,GAAG,aAAa,GAAG,cAAc,CAAC,IAAI,GAAG,GAAG,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC;SAC/L;QACD,OAAO,IAAI,CAAC;OACb;MACD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;KAC7C;;IAED,SAAS,oBAAoB,GAAG;MAC9B,OAAO,0BAA0B,CAAC,4BAA4B,CAAC,CAAC;KACjE;;IAED,SAAS,wBAAwB,CAAC,WAAW,EAAE;MAC7C,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;QACxE,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE;UACrC,OAAO,IAAI,aAAa,CAAC,YAAY,GAAG,YAAY,GAAG,kBAAkB,GAAG,aAAa,GAAG,iDAAiD,CAAC,CAAC;SAChJ;QACD,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;UAC7B,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;UACtC,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,YAAY,IAAI,GAAG,GAAG,QAAQ,GAAG,iBAAiB,GAAG,aAAa,GAAG,uBAAuB,CAAC,CAAC,CAAC;SACvK;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;UACzC,IAAI,KAAK,GAAG,WAAW,CAAC,SAAS,EAAE,CAAC,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,EAAEH,sBAAoB,CAAC,CAAC;UACnH,IAAI,KAAK,YAAY,KAAK,EAAE;YAC1B,OAAO,KAAK,CAAC;WACd;SACF;QACD,OAAO,IAAI,CAAC;OACb;MACD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;KAC7C;;IAED,SAAS,wBAAwB,GAAG;MAClC,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;QACxE,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;UAC9B,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;UACtC,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,YAAY,IAAI,GAAG,GAAG,QAAQ,GAAG,iBAAiB,GAAG,aAAa,GAAG,oCAAoC,CAAC,CAAC,CAAC;SACpL;QACD,OAAO,IAAI,CAAC;OACb;MACD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;KAC7C;;IAED,SAAS,4BAA4B,GAAG;MACtC,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;QACxE,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChC,IAAI,CAACI,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE;UAC1C,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;UACtC,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,YAAY,IAAI,GAAG,GAAG,QAAQ,GAAG,iBAAiB,GAAG,aAAa,GAAG,yCAAyC,CAAC,CAAC,CAAC;SACzL;QACD,OAAO,IAAI,CAAC;OACb;MACD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;KAC7C;;IAED,SAAS,yBAAyB,CAAC,aAAa,EAAE;MAChD,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;QACxE,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,YAAY,aAAa,CAAC,EAAE;UAC/C,IAAI,iBAAiB,GAAG,aAAa,CAAC,IAAI,IAAI,SAAS,CAAC;UACxD,IAAI,eAAe,GAAG,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;UACpD,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,YAAY,IAAI,GAAG,GAAG,eAAe,GAAG,iBAAiB,GAAG,aAAa,GAAG,cAAc,CAAC,IAAI,eAAe,GAAG,iBAAiB,GAAG,IAAI,CAAC,CAAC,CAAC;SACpN;QACD,OAAO,IAAI,CAAC;OACb;MACD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;KAC7C;;IAED,SAAS,qBAAqB,CAAC,cAAc,EAAE;MAC7C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;QAClC,AAA2C;UACzC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YACxBD,cAAY;cACV,8DAA8D,GAAG,SAAS,CAAC,MAAM,GAAG,cAAc;cAClG,0EAA0E;aAC3E,CAAC;WACH,MAAM;YACLA,cAAY,CAAC,wDAAwD,CAAC,CAAC;WACxE;SACF;QACD,OAAO,4BAA4B,CAAC;OACrC;;MAED,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;QACxE,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;UAC9C,IAAI,EAAE,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE;YACpC,OAAO,IAAI,CAAC;WACb;SACF;;QAED,IAAI,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,SAAS,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE;UAC9E,IAAI,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;UACjC,IAAI,IAAI,KAAK,QAAQ,EAAE;YACrB,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;WACtB;UACD,OAAO,KAAK,CAAC;SACd,CAAC,CAAC;QACH,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,IAAI,eAAe,GAAG,aAAa,GAAG,qBAAqB,GAAG,YAAY,GAAG,GAAG,CAAC,CAAC,CAAC;OACpM;MACD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;KAC7C;;IAED,SAAS,yBAAyB,CAAC,WAAW,EAAE;MAC9C,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;QACxE,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE;UACrC,OAAO,IAAI,aAAa,CAAC,YAAY,GAAG,YAAY,GAAG,kBAAkB,GAAG,aAAa,GAAG,kDAAkD,CAAC,CAAC;SACjJ;QACD,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChC,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;QACtC,IAAI,QAAQ,KAAK,QAAQ,EAAE;UACzB,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,YAAY,IAAI,GAAG,GAAG,QAAQ,GAAG,iBAAiB,GAAG,aAAa,GAAG,wBAAwB,CAAC,CAAC,CAAC;SACxK;QACD,KAAK,IAAI,GAAG,IAAI,SAAS,EAAE;UACzB,IAAID,KAAG,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE;YACvB,IAAI,KAAK,GAAG,WAAW,CAAC,SAAS,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,GAAG,GAAG,GAAG,GAAG,EAAEF,sBAAoB,CAAC,CAAC;YACjH,IAAI,KAAK,YAAY,KAAK,EAAE;cAC1B,OAAO,KAAK,CAAC;aACd;WACF;SACF;QACD,OAAO,IAAI,CAAC;OACb;MACD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;KAC7C;;IAED,SAAS,sBAAsB,CAAC,mBAAmB,EAAE;MACnD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE;QACvC,CAAwCG,cAAY,CAAC,wEAAwE,CAAC,CAAS,CAAC;QACxI,OAAO,4BAA4B,CAAC;OACrC;;MAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACnD,IAAI,OAAO,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;UACjCA,cAAY;YACV,oFAAoF;YACpF,WAAW,GAAG,wBAAwB,CAAC,OAAO,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,GAAG;WACzE,CAAC;UACF,OAAO,4BAA4B,CAAC;SACrC;OACF;;MAED,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;QACxE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;UACnD,IAAI,OAAO,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;UACrC,IAAI,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAEH,sBAAoB,CAAC,IAAI,IAAI,EAAE;YACjG,OAAO,IAAI,CAAC;WACb;SACF;;QAED,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,gBAAgB,IAAI,GAAG,GAAG,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC;OACzH;MACD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;KAC7C;;IAED,SAAS,iBAAiB,GAAG;MAC3B,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;QACxE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE;UAC5B,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,gBAAgB,IAAI,GAAG,GAAG,aAAa,GAAG,0BAA0B,CAAC,CAAC,CAAC;SAC/I;QACD,OAAO,IAAI,CAAC;OACb;MACD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;KAC7C;;IAED,SAAS,sBAAsB,CAAC,UAAU,EAAE;MAC1C,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;QACxE,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChC,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;QACtC,IAAI,QAAQ,KAAK,QAAQ,EAAE;UACzB,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,aAAa,GAAG,QAAQ,GAAG,IAAI,IAAI,eAAe,GAAG,aAAa,GAAG,uBAAuB,CAAC,CAAC,CAAC;SACvK;QACD,KAAK,IAAI,GAAG,IAAI,UAAU,EAAE;UAC1B,IAAI,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;UAC9B,IAAI,CAAC,OAAO,EAAE;YACZ,SAAS;WACV;UACD,IAAI,KAAK,GAAG,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,GAAG,GAAG,GAAG,GAAG,EAAEA,sBAAoB,CAAC,CAAC;UAC7G,IAAI,KAAK,EAAE;YACT,OAAO,KAAK,CAAC;WACd;SACF;QACD,OAAO,IAAI,CAAC;OACb;MACD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;KAC7C;;IAED,SAAS,4BAA4B,CAAC,UAAU,EAAE;MAChD,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;QACxE,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChC,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;QACtC,IAAI,QAAQ,KAAK,QAAQ,EAAE;UACzB,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,aAAa,GAAG,QAAQ,GAAG,IAAI,IAAI,eAAe,GAAG,aAAa,GAAG,uBAAuB,CAAC,CAAC,CAAC;SACvK;;;QAGD,IAAI,OAAO,GAAGK,YAAM,CAAC,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC,CAAC;QACtD,KAAK,IAAI,GAAG,IAAI,OAAO,EAAE;UACvB,IAAI,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;UAC9B,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,IAAI,aAAa;cACtB,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,SAAS,GAAG,GAAG,GAAG,iBAAiB,GAAG,aAAa,GAAG,IAAI;cACxG,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;cAC9D,gBAAgB,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;aACxE,CAAC;WACH;UACD,IAAI,KAAK,GAAG,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,GAAG,GAAG,GAAG,GAAG,EAAEL,sBAAoB,CAAC,CAAC;UAC7G,IAAI,KAAK,EAAE;YACT,OAAO,KAAK,CAAC;WACd;SACF;QACD,OAAO,IAAI,CAAC;OACb;;MAED,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;KAC7C;;IAED,SAAS,MAAM,CAAC,SAAS,EAAE;MACzB,QAAQ,OAAO,SAAS;QACtB,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ,CAAC;QACd,KAAK,WAAW;UACd,OAAO,IAAI,CAAC;QACd,KAAK,SAAS;UACZ,OAAO,CAAC,SAAS,CAAC;QACpB,KAAK,QAAQ;UACX,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;YAC5B,OAAO,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;WAChC;UACD,IAAI,SAAS,KAAK,IAAI,IAAI,cAAc,CAAC,SAAS,CAAC,EAAE;YACnD,OAAO,IAAI,CAAC;WACb;;UAED,IAAI,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;UAC1C,IAAI,UAAU,EAAE;YACd,IAAI,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1C,IAAI,IAAI,CAAC;YACT,IAAI,UAAU,KAAK,SAAS,CAAC,OAAO,EAAE;cACpC,OAAO,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE;gBACrC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;kBACvB,OAAO,KAAK,CAAC;iBACd;eACF;aACF,MAAM;;cAEL,OAAO,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE;gBACrC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACvB,IAAI,KAAK,EAAE;kBACT,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;oBACrB,OAAO,KAAK,CAAC;mBACd;iBACF;eACF;aACF;WACF,MAAM;YACL,OAAO,KAAK,CAAC;WACd;;UAED,OAAO,IAAI,CAAC;QACd;UACE,OAAO,KAAK,CAAC;OAChB;KACF;;IAED,SAAS,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE;;MAErC,IAAI,QAAQ,KAAK,QAAQ,EAAE;QACzB,OAAO,IAAI,CAAC;OACb;;;MAGD,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,KAAK,CAAC;OACd;;;MAGD,IAAI,SAAS,CAAC,eAAe,CAAC,KAAK,QAAQ,EAAE;QAC3C,OAAO,IAAI,CAAC;OACb;;;MAGD,IAAI,OAAO,MAAM,KAAK,UAAU,IAAI,SAAS,YAAY,MAAM,EAAE;QAC/D,OAAO,IAAI,CAAC;OACb;;MAED,OAAO,KAAK,CAAC;KACd;;;IAGD,SAAS,WAAW,CAAC,SAAS,EAAE;MAC9B,IAAI,QAAQ,GAAG,OAAO,SAAS,CAAC;MAChC,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;QAC5B,OAAO,OAAO,CAAC;OAChB;MACD,IAAI,SAAS,YAAY,MAAM,EAAE;;;;QAI/B,OAAO,QAAQ,CAAC;OACjB;MACD,IAAI,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE;QACjC,OAAO,QAAQ,CAAC;OACjB;MACD,OAAO,QAAQ,CAAC;KACjB;;;;IAID,SAAS,cAAc,CAAC,SAAS,EAAE;MACjC,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,KAAK,IAAI,EAAE;QAC1D,OAAO,EAAE,GAAG,SAAS,CAAC;OACvB;MACD,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;MACtC,IAAI,QAAQ,KAAK,QAAQ,EAAE;QACzB,IAAI,SAAS,YAAY,IAAI,EAAE;UAC7B,OAAO,MAAM,CAAC;SACf,MAAM,IAAI,SAAS,YAAY,MAAM,EAAE;UACtC,OAAO,QAAQ,CAAC;SACjB;OACF;MACD,OAAO,QAAQ,CAAC;KACjB;;;;IAID,SAAS,wBAAwB,CAAC,KAAK,EAAE;MACvC,IAAI,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;MACjC,QAAQ,IAAI;QACV,KAAK,OAAO,CAAC;QACb,KAAK,QAAQ;UACX,OAAO,KAAK,GAAG,IAAI,CAAC;QACtB,KAAK,SAAS,CAAC;QACf,KAAK,MAAM,CAAC;QACZ,KAAK,QAAQ;UACX,OAAO,IAAI,GAAG,IAAI,CAAC;QACrB;UACE,OAAO,IAAI,CAAC;OACf;KACF;;;IAGD,SAAS,YAAY,CAAC,SAAS,EAAE;MAC/B,IAAI,CAAC,SAAS,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE;QACzD,OAAO,SAAS,CAAC;OAClB;MACD,OAAO,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC;KACnC;;IAED,cAAc,CAAC,cAAc,GAAGM,gBAAc,CAAC;IAC/C,cAAc,CAAC,iBAAiB,GAAGA,gBAAc,CAAC,iBAAiB,CAAC;IACpE,cAAc,CAAC,SAAS,GAAG,cAAc,CAAC;;IAE1C,OAAO,cAAc,CAAC;GACvB,CAAC;;;EC9kBF;;;;;;;AAOA,EAA2C;IACzC,IAAI,OAAO,GAAGL,OAAmB,CAAC;;;;IAIlC,IAAI,mBAAmB,GAAG,IAAI,CAAC;IAC/B,cAAc,GAAGF,uBAAoC,CAAC,OAAO,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;GAC/F,AAIA;;;EClBc,SAAS,QAAQ,GAAG;EACnC,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,UAAU,MAAM,EAAE;EAChD,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EAC/C,MAAM,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;;EAEhC,MAAM,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE;EAC9B,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;EAC/D,UAAU,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;EACpC,SAAS;EACT,OAAO;EACP,KAAK;;EAEL,IAAI,OAAO,MAAM,CAAC;EAClB,GAAG,CAAC;;EAEJ,EAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;EACzC;;EChBA,SAAS,UAAU,CAAC,QAAQ,EAAE;EAC9B,EAAE,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;EACpC,CAAC;;EAED;EACA,SAAS,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE;EAChC,EAAE,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;EACzE,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;EACtB,GAAG;;EAEH,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;EACb,CAAC;;EAED;EACA,SAAS,eAAe,CAAC,EAAE,EAAE;EAC7B,EAAE,IAAI,IAAI,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;;EAEpF,EAAE,IAAI,OAAO,GAAG,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;EAC1C,EAAE,IAAI,SAAS,GAAG,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;;EAEhD,EAAE,IAAI,OAAO,GAAG,EAAE,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;EACrC,EAAE,IAAI,SAAS,GAAG,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;EAC3C,EAAE,IAAI,UAAU,GAAG,OAAO,IAAI,SAAS,CAAC;;EAExC,EAAE,IAAI,EAAE,IAAI,UAAU,CAAC,EAAE,CAAC,EAAE;EAC5B;EACA,IAAI,SAAS,GAAG,OAAO,CAAC;EACxB,GAAG,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE;EAC7B;EACA,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC;EACpB,IAAI,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;EAC1C,GAAG;;EAEH,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,GAAG,CAAC;;EAEpC,EAAE,IAAI,gBAAgB,GAAG,KAAK,CAAC,CAAC;EAChC,EAAE,IAAI,SAAS,CAAC,MAAM,EAAE;EACxB,IAAI,IAAI,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;EAC/C,IAAI,gBAAgB,GAAG,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;EACpE,GAAG,MAAM;EACT,IAAI,gBAAgB,GAAG,KAAK,CAAC;EAC7B,GAAG;;EAEH,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;EACb,EAAE,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;EAC9C,IAAI,IAAI,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;;EAE5B,IAAI,IAAI,IAAI,KAAK,GAAG,EAAE;EACtB,MAAM,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;EAC9B,KAAK,MAAM,IAAI,IAAI,KAAK,IAAI,EAAE;EAC9B,MAAM,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;EAC9B,MAAM,EAAE,EAAE,CAAC;EACX,KAAK,MAAM,IAAI,EAAE,EAAE;EACnB,MAAM,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;EAC9B,MAAM,EAAE,EAAE,CAAC;EACX,KAAK;EACL,GAAG;;EAEH,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE;EACpC,IAAI,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;EAC5B,GAAG,IAAI,UAAU,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;;EAEhH,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;;EAEnC,EAAE,IAAI,gBAAgB,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,CAAC;;EAEnE,EAAE,OAAO,MAAM,CAAC;EAChB,CAAC;;ECnED,IAAI,OAAO,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,GAAG,UAAU,GAAG,EAAE,EAAE,OAAO,OAAO,GAAG,CAAC,EAAE,GAAG,UAAU,GAAG,EAAE,EAAE,OAAO,GAAG,IAAI,OAAO,MAAM,KAAK,UAAU,IAAI,GAAG,CAAC,WAAW,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,CAAC,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,CAAC,EAAE,CAAC;;EAE7Q,SAAS,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE;EAC1B,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,IAAI,CAAC;;EAE3B,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,OAAO,KAAK,CAAC;;EAE3C,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;EACxB,IAAI,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,KAAK,EAAE;EACvF,MAAM,OAAO,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;EACxC,KAAK,CAAC,CAAC;EACP,GAAG;;EAEH,EAAE,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,WAAW,GAAG,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;EAClE,EAAE,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,WAAW,GAAG,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;;EAElE,EAAE,IAAI,KAAK,KAAK,KAAK,EAAE,OAAO,KAAK,CAAC;;EAEpC,EAAE,IAAI,KAAK,KAAK,QAAQ,EAAE;EAC1B,IAAI,IAAI,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;EAC7B,IAAI,IAAI,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;;EAE7B,IAAI,IAAI,MAAM,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;;EAExE,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;EAC/B,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;EAE/B,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,OAAO,KAAK,CAAC;;EAEpD,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE;EACtC,MAAM,OAAO,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;EACxC,KAAK,CAAC,CAAC;EACP,GAAG;;EAEH,EAAE,OAAO,KAAK,CAAC;EACf,CAAC;;EClCD,SAAS,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE;EACrC,EAAE,AAAmB;EACrB,IAAI,IAAI,SAAS,EAAE;EACnB,MAAM,OAAO;EACb,KAAK;;EAEL,IAAI,IAAI,IAAI,GAAG,WAAW,GAAG,OAAO,CAAC;;EAErC,IAAI,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE;EACxC,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;EACzB,KAAK;;EAEL,IAAI,IAAI;EACR,MAAM,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;EACxB,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE;EAClB,GAAG;EACH,CAAC;;EChBD,IAAI,MAAM,GAAG,kBAAkB,CAAC;EAChC,SAAS,SAAS,CAAC,SAAS,EAAE,OAAO,EAAE;EACvC,EAAE,IAAI,SAAS,EAAE;EACjB,IAAI,OAAO;EACX,GAAG;;EAEH,EAAE,AAEO;EACT,IAAI,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,IAAI,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;EACrD,GAAG;EACH,CAAC;;ECSD,SAAS,SAAS,CAAC,IAAI,EAAE;EACzB,EAAE,IAAI,QAAQ,GAAG,IAAI,IAAI,GAAG,CAAC;EAC7B,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC;EAClB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC;EAChB,EAAE,IAAI,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;;EAExC,EAAE,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE;EACxB,IAAI,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;EACtC,IAAI,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;EAC7C,GAAG;;EAEH,EAAE,IAAI,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;;EAE1C,EAAE,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE;EAC1B,IAAI,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;EAC1C,IAAI,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;EAC/C,GAAG;;EAEH,EAAE,OAAO;EACT,IAAI,QAAQ,EAAE,QAAQ;EACtB,IAAI,MAAM,EAAE,MAAM,KAAK,GAAG,GAAG,EAAE,GAAG,MAAM;EACxC,IAAI,IAAI,EAAE,IAAI,KAAK,GAAG,GAAG,EAAE,GAAG,IAAI;EAClC,GAAG,CAAC;EACJ,CAAC;EACD,SAAS,UAAU,CAAC,QAAQ,EAAE;EAC9B,EAAE,IAAI,QAAQ,GAAG,QAAQ,CAAC,QAAQ;EAClC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM;EAC9B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;EAC3B,EAAE,IAAI,IAAI,GAAG,QAAQ,IAAI,GAAG,CAAC;EAC7B,EAAE,IAAI,MAAM,IAAI,MAAM,KAAK,GAAG,EAAE,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC;EACzF,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,GAAG,EAAE,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC;EAC/E,EAAE,OAAO,IAAI,CAAC;EACd,CAAC;;EAED,SAAS,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,eAAe,EAAE;EAC3D,EAAE,IAAI,QAAQ,CAAC;;EAEf,EAAE,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;EAChC;EACA,IAAI,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;EAC/B,IAAI,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;EAC3B,GAAG,MAAM;EACT;EACA,IAAI,QAAQ,GAAG,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;EAClC,IAAI,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS,EAAE,QAAQ,CAAC,QAAQ,GAAG,EAAE,CAAC;;EAEhE,IAAI,IAAI,QAAQ,CAAC,MAAM,EAAE;EACzB,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,QAAQ,CAAC,MAAM,GAAG,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC;EACrF,KAAK,MAAM;EACX,MAAM,QAAQ,CAAC,MAAM,GAAG,EAAE,CAAC;EAC3B,KAAK;;EAEL,IAAI,IAAI,QAAQ,CAAC,IAAI,EAAE;EACvB,MAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,QAAQ,CAAC,IAAI,GAAG,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC;EAC/E,KAAK,MAAM;EACX,MAAM,QAAQ,CAAC,IAAI,GAAG,EAAE,CAAC;EACzB,KAAK;;EAEL,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;EACpF,GAAG;;EAEH,EAAE,IAAI;EACN,IAAI,QAAQ,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;EACrD,GAAG,CAAC,OAAO,CAAC,EAAE;EACd,IAAI,IAAI,CAAC,YAAY,QAAQ,EAAE;EAC/B,MAAM,MAAM,IAAI,QAAQ,CAAC,YAAY,GAAG,QAAQ,CAAC,QAAQ,GAAG,0BAA0B,GAAG,uDAAuD,CAAC,CAAC;EAClJ,KAAK,MAAM;EACX,MAAM,MAAM,CAAC,CAAC;EACd,KAAK;EACL,GAAG;;EAEH,EAAE,IAAI,GAAG,EAAE,QAAQ,CAAC,GAAG,GAAG,GAAG,CAAC;;EAE9B,EAAE,IAAI,eAAe,EAAE;EACvB;EACA,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;EAC5B,MAAM,QAAQ,CAAC,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC;EACnD,KAAK,MAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;EACpD,MAAM,QAAQ,CAAC,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;EACvF,KAAK;EACL,GAAG,MAAM;EACT;EACA,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;EAC5B,MAAM,QAAQ,CAAC,QAAQ,GAAG,GAAG,CAAC;EAC9B,KAAK;EACL,GAAG;;EAEH,EAAE,OAAO,QAAQ,CAAC;EAClB,CAAC;EACD,SAAS,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE;EACjC,EAAE,OAAO,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;EACpI,CAAC;;EAED,SAAS,uBAAuB,GAAG;EACnC,EAAE,IAAI,MAAM,GAAG,IAAI,CAAC;;EAEpB,EAAE,SAAS,SAAS,CAAC,UAAU,EAAE;EACjC,IAAI,AAAuC,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,EAAE,8CAA8C,CAAC,CAAC,AAAQ,CAAC;EAC7H,IAAI,MAAM,GAAG,UAAU,CAAC;EACxB,IAAI,OAAO,YAAY;EACvB,MAAM,IAAI,MAAM,KAAK,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;EAC/C,KAAK,CAAC;EACN,GAAG;;EAEH,EAAE,SAAS,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,mBAAmB,EAAE,QAAQ,EAAE;EAChF;EACA;EACA;EACA,IAAI,IAAI,MAAM,IAAI,IAAI,EAAE;EACxB,MAAM,IAAI,MAAM,GAAG,OAAO,MAAM,KAAK,UAAU,GAAG,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC;;EAEpF,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;EACtC,QAAQ,IAAI,OAAO,mBAAmB,KAAK,UAAU,EAAE;EACvD,UAAU,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;EAChD,SAAS,MAAM;EACf,UAAU,AAAuC,CAAC,OAAO,CAAC,KAAK,EAAE,iFAAiF,CAAC,CAAC,AAAQ,CAAC;EAC7J,UAAU,QAAQ,CAAC,IAAI,CAAC,CAAC;EACzB,SAAS;EACT,OAAO,MAAM;EACb;EACA,QAAQ,QAAQ,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC;EACnC,OAAO;EACP,KAAK,MAAM;EACX,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;EACrB,KAAK;EACL,GAAG;;EAEH,EAAE,IAAI,SAAS,GAAG,EAAE,CAAC;;EAErB,EAAE,SAAS,cAAc,CAAC,EAAE,EAAE;EAC9B,IAAI,IAAI,QAAQ,GAAG,IAAI,CAAC;;EAExB,IAAI,SAAS,QAAQ,GAAG;EACxB,MAAM,IAAI,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC;EAChD,KAAK;;EAEL,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;EAC7B,IAAI,OAAO,YAAY;EACvB,MAAM,QAAQ,GAAG,KAAK,CAAC;EACvB,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE;EACnD,QAAQ,OAAO,IAAI,KAAK,QAAQ,CAAC;EACjC,OAAO,CAAC,CAAC;EACT,KAAK,CAAC;EACN,GAAG;;EAEH,EAAE,SAAS,eAAe,GAAG;EAC7B,IAAI,KAAK,IAAI,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE;EAC7F,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;EACnC,KAAK;;EAEL,IAAI,SAAS,CAAC,OAAO,CAAC,UAAU,QAAQ,EAAE;EAC1C,MAAM,OAAO,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;EAC1C,KAAK,CAAC,CAAC;EACP,GAAG;;EAEH,EAAE,OAAO;EACT,IAAI,SAAS,EAAE,SAAS;EACxB,IAAI,mBAAmB,EAAE,mBAAmB;EAC5C,IAAI,cAAc,EAAE,cAAc;EAClC,IAAI,eAAe,EAAE,eAAe;EACpC,GAAG,CAAC;EACJ,CAAC;;EAED,IAAI,SAAS,GAAG,CAAC,EAAE,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AACtG,AA8jBA;EACA,SAAS,KAAK,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE;EAC1C,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,CAAC;EACvD,CAAC;EACD;EACA;EACA;;;EAGA,SAAS,mBAAmB,CAAC,KAAK,EAAE;EACpC,EAAE,IAAI,KAAK,KAAK,KAAK,CAAC,EAAE;EACxB,IAAI,KAAK,GAAG,EAAE,CAAC;EACf,GAAG;;EAEH,EAAE,IAAI,MAAM,GAAG,KAAK;EACpB,MAAM,mBAAmB,GAAG,MAAM,CAAC,mBAAmB;EACtD,MAAM,qBAAqB,GAAG,MAAM,CAAC,cAAc;EACnD,MAAM,cAAc,GAAG,qBAAqB,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,qBAAqB;EACvF,MAAM,mBAAmB,GAAG,MAAM,CAAC,YAAY;EAC/C,MAAM,YAAY,GAAG,mBAAmB,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,mBAAmB;EAC7E,MAAM,gBAAgB,GAAG,MAAM,CAAC,SAAS;EACzC,MAAM,SAAS,GAAG,gBAAgB,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAAC;EACrE,EAAE,IAAI,iBAAiB,GAAG,uBAAuB,EAAE,CAAC;;EAEpD,EAAE,SAAS,QAAQ,CAAC,SAAS,EAAE;EAC/B,IAAI,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;;EAEjC,IAAI,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;EAC5C,IAAI,iBAAiB,CAAC,eAAe,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;EACxE,GAAG;;EAEH,EAAE,SAAS,SAAS,GAAG;EACvB,IAAI,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;EAC3D,GAAG;;EAEH,EAAE,IAAI,KAAK,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC,EAAE,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;EAChE,EAAE,IAAI,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,UAAU,KAAK,EAAE;EACpD,IAAI,OAAO,OAAO,KAAK,KAAK,QAAQ,GAAG,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,GAAG,IAAI,SAAS,EAAE,CAAC,CAAC;EAClJ,GAAG,CAAC,CAAC;;EAEL,EAAE,IAAI,UAAU,GAAG,UAAU,CAAC;;EAE9B,EAAE,SAAS,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE;EAC7B,IAAI,AAAuC,CAAC,OAAO,CAAC,EAAE,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,CAAC,EAAE,uEAAuE,GAAG,0EAA0E,CAAC,CAAC,AAAQ,CAAC;EACnS,IAAI,IAAI,MAAM,GAAG,MAAM,CAAC;EACxB,IAAI,IAAI,QAAQ,GAAG,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;EAC9E,IAAI,iBAAiB,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,mBAAmB,EAAE,UAAU,EAAE,EAAE;EAC/F,MAAM,IAAI,CAAC,EAAE,EAAE,OAAO;EACtB,MAAM,IAAI,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC;EACpC,MAAM,IAAI,SAAS,GAAG,SAAS,GAAG,CAAC,CAAC;EACpC,MAAM,IAAI,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;;EAEjD,MAAM,IAAI,WAAW,CAAC,MAAM,GAAG,SAAS,EAAE;EAC1C,QAAQ,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,GAAG,SAAS,EAAE,QAAQ,CAAC,CAAC;EAChF,OAAO,MAAM;EACb,QAAQ,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;EACnC,OAAO;;EAEP,MAAM,QAAQ,CAAC;EACf,QAAQ,MAAM,EAAE,MAAM;EACtB,QAAQ,QAAQ,EAAE,QAAQ;EAC1B,QAAQ,KAAK,EAAE,SAAS;EACxB,QAAQ,OAAO,EAAE,WAAW;EAC5B,OAAO,CAAC,CAAC;EACT,KAAK,CAAC,CAAC;EACP,GAAG;;EAEH,EAAE,SAAS,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE;EAChC,IAAI,AAAuC,CAAC,OAAO,CAAC,EAAE,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,CAAC,EAAE,0EAA0E,GAAG,0EAA0E,CAAC,CAAC,AAAQ,CAAC;EACtS,IAAI,IAAI,MAAM,GAAG,SAAS,CAAC;EAC3B,IAAI,IAAI,QAAQ,GAAG,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;EAC9E,IAAI,iBAAiB,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,mBAAmB,EAAE,UAAU,EAAE,EAAE;EAC/F,MAAM,IAAI,CAAC,EAAE,EAAE,OAAO;EACtB,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;EAChD,MAAM,QAAQ,CAAC;EACf,QAAQ,MAAM,EAAE,MAAM;EACtB,QAAQ,QAAQ,EAAE,QAAQ;EAC1B,OAAO,CAAC,CAAC;EACT,KAAK,CAAC,CAAC;EACP,GAAG;;EAEH,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE;EACjB,IAAI,IAAI,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;EAC5E,IAAI,IAAI,MAAM,GAAG,KAAK,CAAC;EACvB,IAAI,IAAI,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;EAC9C,IAAI,iBAAiB,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,mBAAmB,EAAE,UAAU,EAAE,EAAE;EAC/F,MAAM,IAAI,EAAE,EAAE;EACd,QAAQ,QAAQ,CAAC;EACjB,UAAU,MAAM,EAAE,MAAM;EACxB,UAAU,QAAQ,EAAE,QAAQ;EAC5B,UAAU,KAAK,EAAE,SAAS;EAC1B,SAAS,CAAC,CAAC;EACX,OAAO,MAAM;EACb;EACA;EACA,QAAQ,QAAQ,EAAE,CAAC;EACnB,OAAO;EACP,KAAK,CAAC,CAAC;EACP,GAAG;;EAEH,EAAE,SAAS,MAAM,GAAG;EACpB,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;EACX,GAAG;;EAEH,EAAE,SAAS,SAAS,GAAG;EACvB,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;EACV,GAAG;;EAEH,EAAE,SAAS,KAAK,CAAC,CAAC,EAAE;EACpB,IAAI,IAAI,SAAS,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC;EACtC,IAAI,OAAO,SAAS,IAAI,CAAC,IAAI,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;EAChE,GAAG;;EAEH,EAAE,SAAS,KAAK,CAAC,MAAM,EAAE;EACzB,IAAI,IAAI,MAAM,KAAK,KAAK,CAAC,EAAE;EAC3B,MAAM,MAAM,GAAG,KAAK,CAAC;EACrB,KAAK;;EAEL,IAAI,OAAO,iBAAiB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;EAC/C,GAAG;;EAEH,EAAE,SAAS,MAAM,CAAC,QAAQ,EAAE;EAC5B,IAAI,OAAO,iBAAiB,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;EACtD,GAAG;;EAEH,EAAE,IAAI,OAAO,GAAG;EAChB,IAAI,MAAM,EAAE,OAAO,CAAC,MAAM;EAC1B,IAAI,MAAM,EAAE,KAAK;EACjB,IAAI,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC;EAC5B,IAAI,KAAK,EAAE,KAAK;EAChB,IAAI,OAAO,EAAE,OAAO;EACpB,IAAI,UAAU,EAAE,UAAU;EAC1B,IAAI,IAAI,EAAE,IAAI;EACd,IAAI,OAAO,EAAE,OAAO;EACpB,IAAI,EAAE,EAAE,EAAE;EACV,IAAI,MAAM,EAAE,MAAM;EAClB,IAAI,SAAS,EAAE,SAAS;EACxB,IAAI,KAAK,EAAE,KAAK;EAChB,IAAI,KAAK,EAAE,KAAK;EAChB,IAAI,MAAM,EAAE,MAAM;EAClB,GAAG,CAAC;EACJ,EAAE,OAAO,OAAO,CAAC;EACjB,CAAC;;ECr4Bc,SAASQ,gBAAc,CAAC,QAAQ,EAAE,UAAU,EAAE;EAC7D,EAAE,QAAQ,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;EAC3D,EAAE,QAAQ,CAAC,SAAS,CAAC,WAAW,GAAG,QAAQ,CAAC;EAC5C,EAAE,QAAQ,CAAC,SAAS,GAAG,UAAU,CAAC;EAClC;;GAAC,DCCD,IAAI,qBAAqB,GAAG,UAAU,CAAC;EACvC,IAAI,cAAc,GAAG,OAAO,UAAU,KAAK,WAAW,GAAG,UAAU,GAAG,OAAO,MAAM,KAAK,WAAW,GAAG,MAAM,GAAG,OAAO,MAAM,KAAK,WAAW,GAAG,MAAM,GAAG,EAAE,CAAC;;EAE3J,SAAS,WAAW,GAAG;EACvB,EAAE,IAAI,GAAG,GAAG,sBAAsB,CAAC;EACnC,EAAE,OAAO,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;EAC9D,CAAC;;EAED,SAAS,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE;EACxB,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;EACf,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;EACtC,GAAG,MAAM;EACT,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;EAC9B,GAAG;EACH,CAAC;;EAED,SAAS,kBAAkB,CAAC,KAAK,EAAE;EACnC,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC;EACpB,EAAE,OAAO;EACT,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,OAAO,EAAE;EAC7B,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;EAC7B,KAAK;EACL,IAAI,GAAG,EAAE,SAAS,GAAG,CAAC,OAAO,EAAE;EAC/B,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;EAC9C,QAAQ,OAAO,CAAC,KAAK,OAAO,CAAC;EAC7B,OAAO,CAAC,CAAC;EACT,KAAK;EACL,IAAI,GAAG,EAAE,SAAS,GAAG,GAAG;EACxB,MAAM,OAAO,KAAK,CAAC;EACnB,KAAK;EACL,IAAI,GAAG,EAAE,SAAS,GAAG,CAAC,QAAQ,EAAE,WAAW,EAAE;EAC7C,MAAM,KAAK,GAAG,QAAQ,CAAC;EACvB,MAAM,QAAQ,CAAC,OAAO,CAAC,UAAU,OAAO,EAAE;EAC1C,QAAQ,OAAO,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;EAC3C,OAAO,CAAC,CAAC;EACT,KAAK;EACL,GAAG,CAAC;EACJ,CAAC;;EAED,SAAS,SAAS,CAAC,QAAQ,EAAE;EAC7B,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;EAC1D,CAAC;;EAED,SAAS,kBAAkB,CAAC,YAAY,EAAE,oBAAoB,EAAE;EAChE,EAAE,IAAI,qBAAqB,EAAE,qBAAqB,CAAC;;EAEnD,EAAE,IAAI,WAAW,GAAG,yBAAyB,GAAG,WAAW,EAAE,GAAG,IAAI,CAAC;;EAErE,EAAE,IAAI,QAAQ,gBAAgB,UAAU,UAAU,EAAE;EACpD,IAAIA,gBAAc,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;;EAEzC,IAAI,SAAS,QAAQ,GAAG;EACxB,MAAM,IAAI,KAAK,CAAC;;EAEhB,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC;EACxD,MAAM,KAAK,CAAC,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;EAC5D,MAAM,OAAO,KAAK,CAAC;EACnB,KAAK;;EAEL,IAAI,IAAI,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC;;EAEpC,IAAI,MAAM,CAAC,eAAe,GAAG,SAAS,eAAe,GAAG;EACxD,MAAM,IAAI,IAAI,CAAC;;EAEf,MAAM,OAAO,IAAI,GAAG,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC;EAC/D,KAAK,CAAC;;EAEN,IAAI,MAAM,CAAC,yBAAyB,GAAG,SAAS,yBAAyB,CAAC,SAAS,EAAE;EACrF,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,KAAK,EAAE;EAChD,QAAQ,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;EACxC,QAAQ,IAAI,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC;EACvC,QAAQ,IAAI,WAAW,CAAC;;EAExB,QAAQ,IAAI,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE;EAC1C,UAAU,WAAW,GAAG,CAAC,CAAC;EAC1B,SAAS,MAAM;EACf,UAAU,WAAW,GAAG,OAAO,oBAAoB,KAAK,UAAU,GAAG,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,qBAAqB,CAAC;;EAEtI,UAAU,AAA2C;EACrD,YAAY,OAAO,CAAC,CAAC,WAAW,GAAG,qBAAqB,MAAM,WAAW,EAAE,0DAA0D,GAAG,oCAAoC,GAAG,WAAW,CAAC,CAAC;EAC5L,WAAW;;EAEX,UAAU,WAAW,IAAI,CAAC,CAAC;;EAE3B,UAAU,IAAI,WAAW,KAAK,CAAC,EAAE;EACjC,YAAY,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;EAC3D,WAAW;EACX,SAAS;EACT,OAAO;EACP,KAAK,CAAC;;EAEN,IAAI,MAAM,CAAC,MAAM,GAAG,SAAS,MAAM,GAAG;EACtC,MAAM,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;EACjC,KAAK,CAAC;;EAEN,IAAI,OAAO,QAAQ,CAAC;EACpB,GAAG,CAACC,eAAS,CAAC,CAAC;;EAEf,EAAE,QAAQ,CAAC,iBAAiB,IAAI,qBAAqB,GAAG,EAAE,EAAE,qBAAqB,CAAC,WAAW,CAAC,GAAGC,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC;;EAErJ,EAAE,IAAI,QAAQ,gBAAgB,UAAU,WAAW,EAAE;EACrD,IAAIF,gBAAc,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;;EAE1C,IAAI,SAAS,QAAQ,GAAG;EACxB,MAAM,IAAI,MAAM,CAAC;;EAEjB,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC;EAC1D,MAAM,MAAM,CAAC,KAAK,GAAG;EACrB,QAAQ,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE;EAChC,OAAO,CAAC;;EAER,MAAM,MAAM,CAAC,QAAQ,GAAG,UAAU,QAAQ,EAAE,WAAW,EAAE;EACzD,QAAQ,IAAI,YAAY,GAAG,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC;;EAEnD,QAAQ,IAAI,CAAC,YAAY,GAAG,WAAW,MAAM,CAAC,EAAE;EAChD,UAAU,MAAM,CAAC,QAAQ,CAAC;EAC1B,YAAY,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE;EACpC,WAAW,CAAC,CAAC;EACb,SAAS;EACT,OAAO,CAAC;;EAER,MAAM,OAAO,MAAM,CAAC;EACpB,KAAK;;EAEL,IAAI,IAAI,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC;;EAErC,IAAI,OAAO,CAAC,yBAAyB,GAAG,SAAS,yBAAyB,CAAC,SAAS,EAAE;EACtF,MAAM,IAAI,YAAY,GAAG,SAAS,CAAC,YAAY,CAAC;EAChD,MAAM,IAAI,CAAC,YAAY,GAAG,YAAY,KAAK,SAAS,IAAI,YAAY,KAAK,IAAI,GAAG,qBAAqB,GAAG,YAAY,CAAC;EACrH,KAAK,CAAC;;EAEN,IAAI,OAAO,CAAC,iBAAiB,GAAG,SAAS,iBAAiB,GAAG;EAC7D,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;EACrC,QAAQ,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;EACpD,OAAO;;EAEP,MAAM,IAAI,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;EACjD,MAAM,IAAI,CAAC,YAAY,GAAG,YAAY,KAAK,SAAS,IAAI,YAAY,KAAK,IAAI,GAAG,qBAAqB,GAAG,YAAY,CAAC;EACrH,KAAK,CAAC;;EAEN,IAAI,OAAO,CAAC,oBAAoB,GAAG,SAAS,oBAAoB,GAAG;EACnE,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;EACrC,QAAQ,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;EACrD,OAAO;EACP,KAAK,CAAC;;EAEN,IAAI,OAAO,CAAC,QAAQ,GAAG,SAAS,QAAQ,GAAG;EAC3C,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;EACrC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE,CAAC;EAC/C,OAAO,MAAM;EACb,QAAQ,OAAO,YAAY,CAAC;EAC5B,OAAO;EACP,KAAK,CAAC;;EAEN,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,MAAM,GAAG;EACvC,MAAM,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;EAC9D,KAAK,CAAC;;EAEN,IAAI,OAAO,QAAQ,CAAC;EACpB,GAAG,CAACC,eAAS,CAAC,CAAC;;EAEf,EAAE,QAAQ,CAAC,YAAY,IAAI,qBAAqB,GAAG,EAAE,EAAE,qBAAqB,CAAC,WAAW,CAAC,GAAGC,SAAS,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;EACrI,EAAE,OAAO;EACT,IAAI,QAAQ,EAAE,QAAQ;EACtB,IAAI,QAAQ,EAAE,QAAQ;EACtB,GAAG,CAAC;EACJ,CAAC;;EAED,IAAI,KAAK,GAAGC,cAAK,CAAC,aAAa,IAAI,kBAAkB,CAAC;;EC7KtD;AACA;EAEA,IAAMC,kBAAkB,GAAG,SAArBA,kBAAqB,CAAAC,IAAI,EAAI;EACjC,MAAMC,OAAO,GAAGC,KAAa,EAA7B;EACAD,EAAAA,OAAO,CAACE,WAAR,GAAsBH,IAAtB;EAEA,SAAOC,OAAP;EACD,CALD;;ECDA,IAAMG,cAAc;EAAG;EAAcL,kBAAkB,CAAC,gBAAD,CAAvD;;ECFA;AACA;EAEA,IAAMA,oBAAkB,GAAG,SAArBA,kBAAqB,CAAAC,IAAI,EAAI;EACjC,MAAMC,OAAO,GAAGC,KAAa,EAA7B;EACAD,EAAAA,OAAO,CAACE,WAAR,GAAsBH,IAAtB;EAEA,SAAOC,OAAP;EACD,CALD;;EAOA,IAAMA,OAAO;EAAG;AAAcF,sBAAkB,CAAC,QAAD,CAAhD;;ECHA;;;;MAGMM;;;;;WACGC,mBAAP,0BAAwBC,QAAxB,EAAkC;EAChC,WAAO;EAAEC,MAAAA,IAAI,EAAE,GAAR;EAAaC,MAAAA,GAAG,EAAE,GAAlB;EAAuBC,MAAAA,MAAM,EAAE,EAA/B;EAAmCC,MAAAA,OAAO,EAAEJ,QAAQ,KAAK;EAAzD,KAAP;EACD;;EAED,kBAAYK,KAAZ,EAAmB;EAAA;;EACjB,wCAAMA,KAAN;EAEA,UAAKC,KAAL,GAAa;EACXC,MAAAA,QAAQ,EAAEF,KAAK,CAACG,OAAN,CAAcD;EADb,KAAb,CAHiB;EAQjB;EACA;EACA;EACA;;EACA,UAAKE,UAAL,GAAkB,KAAlB;EACA,UAAKC,gBAAL,GAAwB,IAAxB;;EAEA,QAAI,CAACL,KAAK,CAACM,aAAX,EAA0B;EACxB,YAAKC,QAAL,GAAgBP,KAAK,CAACG,OAAN,CAAcK,MAAd,CAAqB,UAAAN,QAAQ,EAAI;EAC/C,YAAI,MAAKE,UAAT,EAAqB;EACnB,gBAAKK,QAAL,CAAc;EAAEP,YAAAA,QAAQ,EAARA;EAAF,WAAd;EACD,SAFD,MAEO;EACL,gBAAKG,gBAAL,GAAwBH,QAAxB;EACD;EACF,OANe,CAAhB;EAOD;;EAvBgB;EAwBlB;;;;WAEDQ,oBAAA,6BAAoB;EAClB,SAAKN,UAAL,GAAkB,IAAlB;;EAEA,QAAI,KAAKC,gBAAT,EAA2B;EACzB,WAAKI,QAAL,CAAc;EAAEP,QAAAA,QAAQ,EAAE,KAAKG;EAAjB,OAAd;EACD;EACF;;WAEDM,uBAAA,gCAAuB;EACrB,QAAI,KAAKJ,QAAT,EAAmB,KAAKA,QAAL;EACpB;;WAEDK,SAAA,kBAAS;EACP,WACE1B,6BAAC2B,OAAD,CAAe,QAAf;EACE,MAAA,KAAK,EAAE;EACLV,QAAAA,OAAO,EAAE,KAAKH,KAAL,CAAWG,OADf;EAELD,QAAAA,QAAQ,EAAE,KAAKD,KAAL,CAAWC,QAFhB;EAGLY,QAAAA,KAAK,EAAErB,MAAM,CAACC,gBAAP,CAAwB,KAAKO,KAAL,CAAWC,QAAX,CAAoBP,QAA5C,CAHF;EAILW,QAAAA,aAAa,EAAE,KAAKN,KAAL,CAAWM;EAJrB;EADT,OAQEpB,6BAAC6B,cAAD,CAAgB,QAAhB;EACE,MAAA,QAAQ,EAAE,KAAKf,KAAL,CAAWgB,QAAX,IAAuB,IADnC;EAEE,MAAA,KAAK,EAAE,KAAKhB,KAAL,CAAWG;EAFpB,MARF,CADF;EAeD;;;IA3DkBjB,cAAK,CAACF;;AA8D3B,EAAa;EACXS,EAAAA,MAAM,CAACwB,SAAP,GAAmB;EACjBD,IAAAA,QAAQ,EAAE/B,SAAS,CAACiC,IADH;EAEjBf,IAAAA,OAAO,EAAElB,SAAS,CAACkC,MAAV,CAAiBC,UAFT;EAGjBd,IAAAA,aAAa,EAAErB,SAAS,CAACkC;EAHR,GAAnB;;EAMA1B,EAAAA,MAAM,CAAC4B,SAAP,CAAiBC,kBAAjB,GAAsC,UAASC,SAAT,EAAoB;EACxD,KAAAC,OAAO,CACLD,SAAS,CAACpB,OAAV,KAAsB,KAAKH,KAAL,CAAWG,OAD5B,EAEL,oCAFK,CAAP;EAID,GALD;EAMD;;EC9ED;;;;MAGMsB;;;;;;;;;;;;;YACJtB,UAAUuB,mBAAa,CAAC,MAAK1B,KAAN;;;;;;WAEvBY,SAAA,kBAAS;EACP,WAAO1B,6BAAC,MAAD;EAAQ,MAAA,OAAO,EAAE,KAAKiB,OAAtB;EAA+B,MAAA,QAAQ,EAAE,KAAKH,KAAL,CAAWgB;EAApD,MAAP;EACD;;;IALwB9B,cAAK,CAACF;;AAQjC,EAAa;EACXyC,EAAAA,YAAY,CAACR,SAAb,GAAyB;EACvBU,IAAAA,cAAc,EAAE1C,SAAS,CAAC2C,KADH;EAEvBC,IAAAA,YAAY,EAAE5C,SAAS,CAAC6C,MAFD;EAGvBC,IAAAA,mBAAmB,EAAE9C,SAAS,CAAC+C,IAHR;EAIvBC,IAAAA,SAAS,EAAEhD,SAAS,CAAC6C,MAJE;EAKvBd,IAAAA,QAAQ,EAAE/B,SAAS,CAACiC;EALG,GAAzB;;EAQAO,EAAAA,YAAY,CAACJ,SAAb,CAAuBX,iBAAvB,GAA2C,YAAW;EACpD,KAAAc,OAAO,CACL,CAAC,KAAKxB,KAAL,CAAWG,OADP,EAEL,uEACE,yEAHG,CAAP;EAKD,GAND;EAOD;;MChCK+B;;;;;;;;;;;WACJxB,oBAAA,6BAAoB;EAClB,QAAI,KAAKV,KAAL,CAAWmC,OAAf,EAAwB,KAAKnC,KAAL,CAAWmC,OAAX,CAAmBC,IAAnB,CAAwB,IAAxB,EAA8B,IAA9B;EACzB;;WAEDd,qBAAA,4BAAmBC,SAAnB,EAA8B;EAC5B,QAAI,KAAKvB,KAAL,CAAWqC,QAAf,EAAyB,KAAKrC,KAAL,CAAWqC,QAAX,CAAoBD,IAApB,CAAyB,IAAzB,EAA+B,IAA/B,EAAqCb,SAArC;EAC1B;;WAEDZ,uBAAA,gCAAuB;EACrB,QAAI,KAAKX,KAAL,CAAWsC,SAAf,EAA0B,KAAKtC,KAAL,CAAWsC,SAAX,CAAqBF,IAArB,CAA0B,IAA1B,EAAgC,IAAhC;EAC3B;;WAEDxB,SAAA,kBAAS;EACP,WAAO,IAAP;EACD;;;IAfqB1B,cAAK,CAACF;;ECK9B;;;;EAGA,SAASuD,MAAT,OAA0C;EAAA,MAAxBC,OAAwB,QAAxBA,OAAwB;EAAA,uBAAfC,IAAe;EAAA,MAAfA,IAAe,0BAAR,IAAQ;EACxC,SACEvD,6BAAC2B,OAAD,CAAe,QAAf,QACG,UAAAxB,OAAO,EAAI;EACV,KAAUA,OAAV,IAAAqD,SAAS,QAAU,gDAAV,CAAT,CAAA;EAEA,QAAI,CAACD,IAAD,IAASpD,OAAO,CAACiB,aAArB,EAAoC,OAAO,IAAP;EAEpC,QAAMqC,MAAM,GAAGtD,OAAO,CAACc,OAAR,CAAgByC,KAA/B;EAEA,WACE1D,6BAAC,SAAD;EACE,MAAA,OAAO,EAAE,iBAAA2D,IAAI,EAAI;EACfA,QAAAA,IAAI,CAACC,OAAL,GAAeH,MAAM,CAACH,OAAD,CAArB;EACD,OAHH;EAIE,MAAA,QAAQ,EAAE,kBAACK,IAAD,EAAOtB,SAAP,EAAqB;EAC7B,YAAIA,SAAS,CAACiB,OAAV,KAAsBA,OAA1B,EAAmC;EACjCK,UAAAA,IAAI,CAACC,OAAL;EACAD,UAAAA,IAAI,CAACC,OAAL,GAAeH,MAAM,CAACH,OAAD,CAArB;EACD;EACF,OATH;EAUE,MAAA,SAAS,EAAE,mBAAAK,IAAI,EAAI;EACjBA,QAAAA,IAAI,CAACC,OAAL;EACD,OAZH;EAaE,MAAA,OAAO,EAAEN;EAbX,MADF;EAiBD,GAzBH,CADF;EA6BD;;AAED,EAAa;EACX,MAAMO,WAAW,GAAG9D,SAAS,CAAC+D,SAAV,CAAoB,CAAC/D,SAAS,CAAC+C,IAAX,EAAiB/C,SAAS,CAACgE,MAA3B,CAApB,CAApB;EAEAV,EAAAA,MAAM,CAACtB,SAAP,GAAmB;EACjBwB,IAAAA,IAAI,EAAExD,SAAS,CAACiE,IADC;EAEjBV,IAAAA,OAAO,EAAEO,WAAW,CAAC3B;EAFJ,GAAnB;EAID;;ECjDD,WAAc,GAAG,KAAK,CAAC,OAAO,IAAI,UAAU,GAAG,EAAE;IAC/C,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,gBAAgB,CAAC;GAChE,CAAC;;ECAF;;;EAGA,kBAAc,GAAG,aAAY;EAC7B,WAAoB,GAAG,MAAK;EAC5B,aAAsB,GAAG,QAAO;EAChC,sBAA+B,GAAG,iBAAgB;EAClD,oBAA6B,GAAG,eAAc;;;;;;;EAO9C,IAAI,WAAW,GAAG,IAAI,MAAM,CAAC;;;IAG3B,SAAS;;;;;;;IAOT,wGAAwG;GACzG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAC;;;;;;;;;EASjB,SAAS,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE;IAC5B,IAAI,MAAM,GAAG,GAAE;IACf,IAAI,GAAG,GAAG,EAAC;IACX,IAAI,KAAK,GAAG,EAAC;IACb,IAAI,IAAI,GAAG,GAAE;IACb,IAAI,gBAAgB,GAAG,OAAO,IAAI,OAAO,CAAC,SAAS,IAAI,IAAG;IAC1D,IAAI,IAAG;;IAEP,OAAO,CAAC,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;MAC5C,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,EAAC;MACd,IAAI,OAAO,GAAG,GAAG,CAAC,CAAC,EAAC;MACpB,IAAI,MAAM,GAAG,GAAG,CAAC,MAAK;MACtB,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAC;MAChC,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC,OAAM;;;MAGzB,IAAI,OAAO,EAAE;QACX,IAAI,IAAI,OAAO,CAAC,CAAC,EAAC;QAClB,QAAQ;OACT;;MAED,IAAI,IAAI,GAAG,GAAG,CAAC,KAAK,EAAC;MACrB,IAAI,MAAM,GAAG,GAAG,CAAC,CAAC,EAAC;MACnB,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,EAAC;MACjB,IAAI,OAAO,GAAG,GAAG,CAAC,CAAC,EAAC;MACpB,IAAI,KAAK,GAAG,GAAG,CAAC,CAAC,EAAC;MAClB,IAAI,QAAQ,GAAG,GAAG,CAAC,CAAC,EAAC;MACrB,IAAI,QAAQ,GAAG,GAAG,CAAC,CAAC,EAAC;;;MAGrB,IAAI,IAAI,EAAE;QACR,MAAM,CAAC,IAAI,CAAC,IAAI,EAAC;QACjB,IAAI,GAAG,GAAE;OACV;;MAED,IAAI,OAAO,GAAG,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,OAAM;MAC/D,IAAI,MAAM,GAAG,QAAQ,KAAK,GAAG,IAAI,QAAQ,KAAK,IAAG;MACjD,IAAI,QAAQ,GAAG,QAAQ,KAAK,GAAG,IAAI,QAAQ,KAAK,IAAG;MACnD,IAAI,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,iBAAgB;MAC1C,IAAI,OAAO,GAAG,OAAO,IAAI,MAAK;;MAE9B,MAAM,CAAC,IAAI,CAAC;QACV,IAAI,EAAE,IAAI,IAAI,GAAG,EAAE;QACnB,MAAM,EAAE,MAAM,IAAI,EAAE;QACpB,SAAS,EAAE,SAAS;QACpB,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,OAAO;QAChB,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,OAAO,EAAE,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,QAAQ,GAAG,IAAI,GAAG,IAAI,GAAG,YAAY,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;OACrG,EAAC;KACH;;;IAGD,IAAI,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE;MACtB,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,EAAC;KAC1B;;;IAGD,IAAI,IAAI,EAAE;MACR,MAAM,CAAC,IAAI,CAAC,IAAI,EAAC;KAClB;;IAED,OAAO,MAAM;GACd;;;;;;;;;EASD,SAAS,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE;IAC9B,OAAO,gBAAgB,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;GAC7C;;;;;;;;EAQD,SAAS,wBAAwB,EAAE,GAAG,EAAE;IACtC,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE;MACpD,OAAO,GAAG,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE;KACxD,CAAC;GACH;;;;;;;;EAQD,SAAS,cAAc,EAAE,GAAG,EAAE;IAC5B,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE;MAClD,OAAO,GAAG,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE;KACxD,CAAC;GACH;;;;;EAKD,SAAS,gBAAgB,EAAE,MAAM,EAAE;;IAEjC,IAAI,OAAO,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,EAAC;;;IAGtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;MACtC,IAAI,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;QACjC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,EAAC;OAC3D;KACF;;IAED,OAAO,UAAU,GAAG,EAAE,IAAI,EAAE;MAC1B,IAAI,IAAI,GAAG,GAAE;MACb,IAAI,IAAI,GAAG,GAAG,IAAI,GAAE;MACpB,IAAI,OAAO,GAAG,IAAI,IAAI,GAAE;MACxB,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,wBAAwB,GAAG,mBAAkB;;MAE3E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACtC,IAAI,KAAK,GAAG,MAAM,CAAC,CAAC,EAAC;;QAErB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;UAC7B,IAAI,IAAI,MAAK;;UAEb,QAAQ;SACT;;QAED,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAC;QAC5B,IAAI,QAAO;;QAEX,IAAI,KAAK,IAAI,IAAI,EAAE;UACjB,IAAI,KAAK,CAAC,QAAQ,EAAE;;YAElB,IAAI,KAAK,CAAC,OAAO,EAAE;cACjB,IAAI,IAAI,KAAK,CAAC,OAAM;aACrB;;YAED,QAAQ;WACT,MAAM;YACL,MAAM,IAAI,SAAS,CAAC,YAAY,GAAG,KAAK,CAAC,IAAI,GAAG,iBAAiB,CAAC;WACnE;SACF;;QAED,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE;UAClB,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YACjB,MAAM,IAAI,SAAS,CAAC,YAAY,GAAG,KAAK,CAAC,IAAI,GAAG,iCAAiC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;WACjH;;UAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YACtB,IAAI,KAAK,CAAC,QAAQ,EAAE;cAClB,QAAQ;aACT,MAAM;cACL,MAAM,IAAI,SAAS,CAAC,YAAY,GAAG,KAAK,CAAC,IAAI,GAAG,mBAAmB,CAAC;aACrE;WACF;;UAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAC;;YAE1B,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;cAC7B,MAAM,IAAI,SAAS,CAAC,gBAAgB,GAAG,KAAK,CAAC,IAAI,GAAG,cAAc,GAAG,KAAK,CAAC,OAAO,GAAG,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC;aAC1I;;YAED,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,SAAS,IAAI,QAAO;WAC7D;;UAED,QAAQ;SACT;;QAED,OAAO,GAAG,KAAK,CAAC,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,EAAC;;QAEhE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;UAC7B,MAAM,IAAI,SAAS,CAAC,YAAY,GAAG,KAAK,CAAC,IAAI,GAAG,cAAc,GAAG,KAAK,CAAC,OAAO,GAAG,mBAAmB,GAAG,OAAO,GAAG,GAAG,CAAC;SACtH;;QAED,IAAI,IAAI,KAAK,CAAC,MAAM,GAAG,QAAO;OAC/B;;MAED,OAAO,IAAI;KACZ;GACF;;;;;;;;EAQD,SAAS,YAAY,EAAE,GAAG,EAAE;IAC1B,OAAO,GAAG,CAAC,OAAO,CAAC,4BAA4B,EAAE,MAAM,CAAC;GACzD;;;;;;;;EAQD,SAAS,WAAW,EAAE,KAAK,EAAE;IAC3B,OAAO,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,MAAM,CAAC;GAC9C;;;;;;;;;EASD,SAAS,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE;IAC7B,EAAE,CAAC,IAAI,GAAG,KAAI;IACd,OAAO,EAAE;GACV;;;;;;;;EAQD,SAAS,KAAK,EAAE,OAAO,EAAE;IACvB,OAAO,OAAO,CAAC,SAAS,GAAG,EAAE,GAAG,GAAG;GACpC;;;;;;;;;EASD,SAAS,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE;;IAEnC,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAC;;IAE3C,IAAI,MAAM,EAAE;MACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACtC,IAAI,CAAC,IAAI,CAAC;UACR,IAAI,EAAE,CAAC;UACP,MAAM,EAAE,IAAI;UACZ,SAAS,EAAE,IAAI;UACf,QAAQ,EAAE,KAAK;UACf,MAAM,EAAE,KAAK;UACb,OAAO,EAAE,KAAK;UACd,QAAQ,EAAE,KAAK;UACf,OAAO,EAAE,IAAI;SACd,EAAC;OACH;KACF;;IAED,OAAO,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC;GAC9B;;;;;;;;;;EAUD,SAAS,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;IAC3C,IAAI,KAAK,GAAG,GAAE;;IAEd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;MACpC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,MAAM,EAAC;KACxD;;IAED,IAAI,MAAM,GAAG,IAAI,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,EAAC;;IAEtE,OAAO,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC;GAChC;;;;;;;;;;EAUD,SAAS,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;IAC5C,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC;GAC3D;;;;;;;;;;EAUD,SAAS,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;IAC9C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;MAClB,OAAO,2BAA2B,IAAI,IAAI,OAAO,EAAC;MAClD,IAAI,GAAG,GAAE;KACV;;IAED,OAAO,GAAG,OAAO,IAAI,GAAE;;IAEvB,IAAI,MAAM,GAAG,OAAO,CAAC,OAAM;IAC3B,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,KAAK,MAAK;IAC/B,IAAI,KAAK,GAAG,GAAE;;;IAGd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;MACtC,IAAI,KAAK,GAAG,MAAM,CAAC,CAAC,EAAC;;MAErB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,KAAK,IAAI,YAAY,CAAC,KAAK,EAAC;OAC7B,MAAM;QACL,IAAI,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,EAAC;QACvC,IAAI,OAAO,GAAG,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,IAAG;;QAEzC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAC;;QAEhB,IAAI,KAAK,CAAC,MAAM,EAAE;UAChB,OAAO,IAAI,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,KAAI;SAC3C;;QAED,IAAI,KAAK,CAAC,QAAQ,EAAE;UAClB,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;YAClB,OAAO,GAAG,KAAK,GAAG,MAAM,GAAG,GAAG,GAAG,OAAO,GAAG,MAAK;WACjD,MAAM;YACL,OAAO,GAAG,MAAM,GAAG,GAAG,GAAG,OAAO,GAAG,KAAI;WACxC;SACF,MAAM;UACL,OAAO,GAAG,MAAM,GAAG,GAAG,GAAG,OAAO,GAAG,IAAG;SACvC;;QAED,KAAK,IAAI,QAAO;OACjB;KACF;;IAED,IAAI,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,IAAI,GAAG,EAAC;IACtD,IAAI,iBAAiB,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,UAAS;;;;;;IAMpE,IAAI,CAAC,MAAM,EAAE;MACX,KAAK,GAAG,CAAC,iBAAiB,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,KAAK,IAAI,KAAK,GAAG,SAAS,GAAG,UAAS;KACxG;;IAED,IAAI,GAAG,EAAE;MACP,KAAK,IAAI,IAAG;KACb,MAAM;;;MAGL,KAAK,IAAI,MAAM,IAAI,iBAAiB,GAAG,EAAE,GAAG,KAAK,GAAG,SAAS,GAAG,MAAK;KACtE;;IAED,OAAO,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,GAAG,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC;GACjE;;;;;;;;;;;;;;EAcD,SAAS,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;IAC1C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;MAClB,OAAO,2BAA2B,IAAI,IAAI,OAAO,EAAC;MAClD,IAAI,GAAG,GAAE;KACV;;IAED,OAAO,GAAG,OAAO,IAAI,GAAE;;IAEvB,IAAI,IAAI,YAAY,MAAM,EAAE;MAC1B,OAAO,cAAc,CAAC,IAAI,yBAAyB,IAAI,EAAE;KAC1D;;IAED,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE;MACjB,OAAO,aAAa,wBAAwB,IAAI,0BAA0B,IAAI,GAAG,OAAO,CAAC;KAC1F;;IAED,OAAO,cAAc,wBAAwB,IAAI,0BAA0B,IAAI,GAAG,OAAO,CAAC;GAC3F;;;;;;ECvaD,IAAM+B,KAAK,GAAG,EAAd;EACA,IAAMC,UAAU,GAAG,KAAnB;EACA,IAAIC,UAAU,GAAG,CAAjB;;EAEA,SAASC,WAAT,CAAqB1D,IAArB,EAA2B;EACzB,MAAIuD,KAAK,CAACvD,IAAD,CAAT,EAAiB,OAAOuD,KAAK,CAACvD,IAAD,CAAZ;EAEjB,MAAM2D,SAAS,GAAGC,cAAY,CAACC,OAAb,CAAqB7D,IAArB,CAAlB;;EAEA,MAAIyD,UAAU,GAAGD,UAAjB,EAA6B;EAC3BD,IAAAA,KAAK,CAACvD,IAAD,CAAL,GAAc2D,SAAd;EACAF,IAAAA,UAAU;EACX;;EAED,SAAOE,SAAP;EACD;EAED;;;;;EAGA,SAASG,YAAT,CAAsB9D,IAAtB,EAAkCE,MAAlC,EAA+C;EAAA,MAAzBF,IAAyB;EAAzBA,IAAAA,IAAyB,GAAlB,GAAkB;EAAA;;EAAA,MAAbE,MAAa;EAAbA,IAAAA,MAAa,GAAJ,EAAI;EAAA;;EAC7C,SAAOF,IAAI,KAAK,GAAT,GAAeA,IAAf,GAAsB0D,WAAW,CAAC1D,IAAD,CAAX,CAAkBE,MAAlB,EAA0B;EAAE6D,IAAAA,MAAM,EAAE;EAAV,GAA1B,CAA7B;EACD;;ECfD;;;;EAGA,SAASC,QAAT,OAAuD;EAAA,MAAnCC,aAAmC,QAAnCA,aAAmC;EAAA,MAApBC,EAAoB,QAApBA,EAAoB;EAAA,uBAAhBC,IAAgB;EAAA,MAAhBA,IAAgB,0BAAT,KAAS;EACrD,SACE7E,6BAAC2B,OAAD,CAAe,QAAf,QACG,UAAAxB,OAAO,EAAI;EACV,KAAUA,OAAV,IAAAqD,SAAS,QAAU,kDAAV,CAAT,CAAA;EADU,QAGFvC,OAHE,GAGyBd,OAHzB,CAGFc,OAHE;EAAA,QAGOG,aAHP,GAGyBjB,OAHzB,CAGOiB,aAHP;EAKV,QAAMqC,MAAM,GAAGoB,IAAI,GAAG5D,OAAO,CAAC4D,IAAX,GAAkB5D,OAAO,CAAC6D,OAA7C;EACA,QAAM9D,QAAQ,GAAG+D,cAAc,CAC7BJ,aAAa,GACT,OAAOC,EAAP,KAAc,QAAd,GACEJ,YAAY,CAACI,EAAD,EAAKD,aAAa,CAAC/D,MAAnB,CADd,gBAGOgE,EAHP;EAIInE,MAAAA,QAAQ,EAAE+D,YAAY,CAACI,EAAE,CAACnE,QAAJ,EAAckE,aAAa,CAAC/D,MAA5B;EAJ1B,MADS,GAOTgE,EARyB,CAA/B,CANU;EAkBV;;EACA,QAAIxD,aAAJ,EAAmB;EACjBqC,MAAAA,MAAM,CAACzC,QAAD,CAAN;EACA,aAAO,IAAP;EACD;;EAED,WACEhB,6BAAC,SAAD;EACE,MAAA,OAAO,EAAE,mBAAM;EACbyD,QAAAA,MAAM,CAACzC,QAAD,CAAN;EACD,OAHH;EAIE,MAAA,QAAQ,EAAE,kBAAC2C,IAAD,EAAOtB,SAAP,EAAqB;EAC7B,YAAM2C,YAAY,GAAGD,cAAc,CAAC1C,SAAS,CAACuC,EAAX,CAAnC;;EACA,YACE,CAACK,iBAAiB,CAACD,YAAD,eACbhE,QADa;EAEhBkE,UAAAA,GAAG,EAAEF,YAAY,CAACE;EAFF,WADpB,EAKE;EACAzB,UAAAA,MAAM,CAACzC,QAAD,CAAN;EACD;EACF,OAdH;EAeE,MAAA,EAAE,EAAE4D;EAfN,MADF;EAmBD,GA5CH,CADF;EAgDD;;AAED,EAAa;EACXF,EAAAA,QAAQ,CAAC3C,SAAT,GAAqB;EACnB8C,IAAAA,IAAI,EAAE9E,SAAS,CAACiE,IADG;EAEnBmB,IAAAA,IAAI,EAAEpF,SAAS,CAACgE,MAFG;EAGnBa,IAAAA,EAAE,EAAE7E,SAAS,CAAC+D,SAAV,CAAoB,CAAC/D,SAAS,CAACgE,MAAX,EAAmBhE,SAAS,CAACkC,MAA7B,CAApB,EAA0DC;EAH3C,GAArB;EAKD;;ECnED,IAAM+B,OAAK,GAAG,EAAd;EACA,IAAMC,YAAU,GAAG,KAAnB;EACA,IAAIC,YAAU,GAAG,CAAjB;;EAEA,SAASC,aAAT,CAAqB1D,IAArB,EAA2B0E,OAA3B,EAAoC;EAClC,MAAMC,QAAQ,QAAMD,OAAO,CAACE,GAAd,GAAoBF,OAAO,CAACG,MAA5B,GAAqCH,OAAO,CAACI,SAA3D;EACA,MAAMC,SAAS,GAAGxB,OAAK,CAACoB,QAAD,CAAL,KAAoBpB,OAAK,CAACoB,QAAD,CAAL,GAAkB,EAAtC,CAAlB;EAEA,MAAII,SAAS,CAAC/E,IAAD,CAAb,EAAqB,OAAO+E,SAAS,CAAC/E,IAAD,CAAhB;EAErB,MAAMgF,IAAI,GAAG,EAAb;EACA,MAAMC,MAAM,GAAGrB,cAAY,CAAC5D,IAAD,EAAOgF,IAAP,EAAaN,OAAb,CAA3B;EACA,MAAMQ,MAAM,GAAG;EAAED,IAAAA,MAAM,EAANA,MAAF;EAAUD,IAAAA,IAAI,EAAJA;EAAV,GAAf;;EAEA,MAAIvB,YAAU,GAAGD,YAAjB,EAA6B;EAC3BuB,IAAAA,SAAS,CAAC/E,IAAD,CAAT,GAAkBkF,MAAlB;EACAzB,IAAAA,YAAU;EACX;;EAED,SAAOyB,MAAP;EACD;EAED;;;;;EAGA,SAASC,SAAT,CAAmBpF,QAAnB,EAA6B2E,OAA7B,EAA2C;EAAA,MAAdA,OAAc;EAAdA,IAAAA,OAAc,GAAJ,EAAI;EAAA;;EACzC,MAAI,OAAOA,OAAP,KAAmB,QAAnB,IAA+BU,KAAK,CAACC,OAAN,CAAcX,OAAd,CAAnC,EAA2D;EACzDA,IAAAA,OAAO,GAAG;EAAE1E,MAAAA,IAAI,EAAE0E;EAAR,KAAV;EACD;;EAHwC,iBAK0BA,OAL1B;EAAA,MAKjC1E,IALiC,YAKjCA,IALiC;EAAA,gCAK3BsF,KAL2B;EAAA,MAK3BA,KAL2B,+BAKnB,KALmB;EAAA,iCAKZT,MALY;EAAA,MAKZA,MALY,gCAKH,KALG;EAAA,oCAKIC,SALJ;EAAA,MAKIA,SALJ,mCAKgB,KALhB;EAOzC,MAAMS,KAAK,GAAG,GAAGC,MAAH,CAAUxF,IAAV,CAAd;EAEA,SAAOuF,KAAK,CAACE,MAAN,CAAa,UAACC,OAAD,EAAU1F,IAAV,EAAmB;EACrC,QAAI,CAACA,IAAD,IAASA,IAAI,KAAK,EAAtB,EAA0B,OAAO,IAAP;EAC1B,QAAI0F,OAAJ,EAAa,OAAOA,OAAP;;EAFwB,uBAIZhC,aAAW,CAAC1D,IAAD,EAAO;EACzC4E,MAAAA,GAAG,EAAEU,KADoC;EAEzCT,MAAAA,MAAM,EAANA,MAFyC;EAGzCC,MAAAA,SAAS,EAATA;EAHyC,KAAP,CAJC;EAAA,QAI7BG,MAJ6B,gBAI7BA,MAJ6B;EAAA,QAIrBD,IAJqB,gBAIrBA,IAJqB;;EASrC,QAAM9D,KAAK,GAAG+D,MAAM,CAACU,IAAP,CAAY5F,QAAZ,CAAd;EAEA,QAAI,CAACmB,KAAL,EAAY,OAAO,IAAP;EAXyB,QAa9BjB,GAb8B,GAaZiB,KAbY;EAAA,QAatB0E,MAbsB,GAaZ1E,KAbY;EAcrC,QAAMf,OAAO,GAAGJ,QAAQ,KAAKE,GAA7B;EAEA,QAAIqF,KAAK,IAAI,CAACnF,OAAd,EAAuB,OAAO,IAAP;EAEvB,WAAO;EACLH,MAAAA,IAAI,EAAJA,IADK;EACC;EACNC,MAAAA,GAAG,EAAED,IAAI,KAAK,GAAT,IAAgBC,GAAG,KAAK,EAAxB,GAA6B,GAA7B,GAAmCA,GAFnC;EAEwC;EAC7CE,MAAAA,OAAO,EAAPA,OAHK;EAGI;EACTD,MAAAA,MAAM,EAAE8E,IAAI,CAACS,MAAL,CAAY,UAACI,IAAD,EAAOrB,GAAP,EAAYsB,KAAZ,EAAsB;EACxCD,QAAAA,IAAI,CAACrB,GAAG,CAAChF,IAAL,CAAJ,GAAiBoG,MAAM,CAACE,KAAD,CAAvB;EACA,eAAOD,IAAP;EACD,OAHO,EAGL,EAHK;EAJH,KAAP;EASD,GA3BM,EA2BJ,IA3BI,CAAP;EA4BD;;ECvDD,SAASE,eAAT,CAAyB3E,QAAzB,EAAmC;EACjC,SAAO9B,cAAK,CAAC0G,QAAN,CAAeC,KAAf,CAAqB7E,QAArB,MAAmC,CAA1C;EACD;;EAED,SAAS8E,eAAT,CAAyB9E,QAAzB,EAAmChB,KAAnC,EAA0CJ,IAA1C,EAAgD;EAC9C,MAAMmG,KAAK,GAAG/E,QAAQ,CAAChB,KAAD,CAAtB;EAEA,GAAAwB,OAAO,CACLuE,KAAK,KAAKC,SADL,EAEL,2EACWpG,IAAI,gBAAaA,IAAb,UAAuB,EADtC,qBAEE,gDAJG,CAAP;EAOA,SAAOmG,KAAK,IAAI,IAAhB;EACD;EAED;;;;;MAGME;;;;;;;;;;;WACJrF,SAAA,kBAAS;EAAA;;EACP,WACE1B,6BAAC2B,OAAD,CAAe,QAAf,QACG,UAAAxB,SAAO,EAAI;EACV,OAAUA,SAAV,IAAAqD,SAAS,QAAU,+CAAV,CAAT,CAAA;EAEA,UAAMxC,QAAQ,GAAG,KAAI,CAACF,KAAL,CAAWE,QAAX,IAAuBb,SAAO,CAACa,QAAhD;EACA,UAAMY,KAAK,GAAG,KAAI,CAACd,KAAL,CAAW6D,aAAX,GACV,KAAI,CAAC7D,KAAL,CAAW6D,aADD;EAAA,QAEV,KAAI,CAAC7D,KAAL,CAAWJ,IAAX,GACAmF,SAAS,CAAC7E,QAAQ,CAACP,QAAV,EAAoB,KAAI,CAACK,KAAzB,CADT,GAEAX,SAAO,CAACyB,KAJZ;;EAMA,UAAMd,KAAK,gBAAQX,SAAR;EAAiBa,QAAAA,QAAQ,EAARA,QAAjB;EAA2BY,QAAAA,KAAK,EAALA;EAA3B,QAAX;;EAVU,wBAY4B,KAAI,CAACd,KAZjC;EAAA,UAYJgB,QAZI,eAYJA,QAZI;EAAA,UAYMkF,SAZN,eAYMA,SAZN;EAAA,UAYiBtF,MAZjB,eAYiBA,MAZjB;EAeV;;EACA,UAAIoE,KAAK,CAACC,OAAN,CAAcjE,QAAd,KAA2BA,QAAQ,CAACmF,MAAT,KAAoB,CAAnD,EAAsD;EACpDnF,QAAAA,QAAQ,GAAG,IAAX;EACD;;EAED,aACE9B,6BAAC2B,OAAD,CAAe,QAAf;EAAwB,QAAA,KAAK,EAAEb;EAA/B,SACGA,KAAK,CAACc,KAAN,GACGE,QAAQ,GACN,OAAOA,QAAP,KAAoB,UAApB,GACE,CACE8E,eAAe,CAAC9E,QAAD,EAAWhB,KAAX,EAAkB,KAAI,CAACA,KAAL,CAAWJ,IAA7B,CADjB,CADF,GAIEoB,QALI,GAMNkF,SAAS,GACThH,cAAK,CAACkH,aAAN,CAAoBF,SAApB,EAA+BlG,KAA/B,CADS,GAETY,MAAM,GACNA,MAAM,CAACZ,KAAD,CADA,GAEN,IAXL,GAYG,OAAOgB,QAAP,KAAoB,UAApB,GACA,CACE8E,eAAe,CAAC9E,QAAD,EAAWhB,KAAX,EAAkB,KAAI,CAACA,KAAL,CAAWJ,IAA7B,CADjB,CADA,GAIA,IAjBN,CADF;EAqBD,KA1CH,CADF;EA8CD;;;IAhDiBV,cAAK,CAACF;;AAmD1B,EAAa;EACXiH,EAAAA,KAAK,CAAChF,SAAN,GAAkB;EAChBD,IAAAA,QAAQ,EAAE/B,SAAS,CAAC+D,SAAV,CAAoB,CAAC/D,SAAS,CAAC+C,IAAX,EAAiB/C,SAAS,CAACiC,IAA3B,CAApB,CADM;EAEhBgF,IAAAA,SAAS,EAAE,mBAAClG,KAAD,EAAQqG,QAAR,EAAqB;EAC9B,UAAIrG,KAAK,CAACqG,QAAD,CAAL,IAAmB,CAACC,SAAkB,CAACtG,KAAK,CAACqG,QAAD,CAAN,CAA1C,EAA6D;EAC3D,eAAO,IAAIE,KAAJ,yFAAP;EAGD;EACF,KARe;EAShBrB,IAAAA,KAAK,EAAEjG,SAAS,CAACiE,IATD;EAUhBhD,IAAAA,QAAQ,EAAEjB,SAAS,CAACkC,MAVJ;EAWhBvB,IAAAA,IAAI,EAAEX,SAAS,CAAC+D,SAAV,CAAoB,CACxB/D,SAAS,CAACgE,MADc,EAExBhE,SAAS,CAACuH,OAAV,CAAkBvH,SAAS,CAACgE,MAA5B,CAFwB,CAApB,CAXU;EAehBrC,IAAAA,MAAM,EAAE3B,SAAS,CAAC+C,IAfF;EAgBhB0C,IAAAA,SAAS,EAAEzF,SAAS,CAACiE,IAhBL;EAiBhBuB,IAAAA,MAAM,EAAExF,SAAS,CAACiE;EAjBF,GAAlB;;EAoBA+C,EAAAA,KAAK,CAAC5E,SAAN,CAAgBX,iBAAhB,GAAoC,YAAW;EAC7C,KAAAc,OAAO,CACL,EACE,KAAKxB,KAAL,CAAWgB,QAAX,IACA,CAAC2E,eAAe,CAAC,KAAK3F,KAAL,CAAWgB,QAAZ,CADhB,IAEA,KAAKhB,KAAL,CAAWkG,SAHb,CADK,EAML,gHANK,CAAP;EASA,KAAA1E,OAAO,CACL,EACE,KAAKxB,KAAL,CAAWgB,QAAX,IACA,CAAC2E,eAAe,CAAC,KAAK3F,KAAL,CAAWgB,QAAZ,CADhB,IAEA,KAAKhB,KAAL,CAAWY,MAHb,CADK,EAML,0GANK,CAAP;EASA,KAAAY,OAAO,CACL,EAAE,KAAKxB,KAAL,CAAWkG,SAAX,IAAwB,KAAKlG,KAAL,CAAWY,MAArC,CADK,EAEL,2GAFK,CAAP;EAID,GAvBD;;EAyBAqF,EAAAA,KAAK,CAAC5E,SAAN,CAAgBC,kBAAhB,GAAqC,UAASC,SAAT,EAAoB;EACvD,KAAAC,OAAO,CACL,EAAE,KAAKxB,KAAL,CAAWE,QAAX,IAAuB,CAACqB,SAAS,CAACrB,QAApC,CADK,EAEL,yKAFK,CAAP;EAKA,KAAAsB,OAAO,CACL,EAAE,CAAC,KAAKxB,KAAL,CAAWE,QAAZ,IAAwBqB,SAAS,CAACrB,QAApC,CADK,EAEL,qKAFK,CAAP;EAID,GAVD;EAWD;;ECzIc,SAAS,6BAA6B,CAAC,MAAM,EAAE,QAAQ,EAAE;EACxE,EAAE,IAAI,MAAM,IAAI,IAAI,EAAE,OAAO,EAAE,CAAC;EAChC,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC;EAClB,EAAE,IAAI,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;EACvC,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;;EAEb,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EAC1C,IAAI,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;EACxB,IAAI,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS;EAC7C,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;EAC9B,GAAG;;EAEH,EAAE,OAAO,MAAM,CAAC;EAChB;;GAAC,DCLD,SAASuG,eAAT,CAAyB7G,IAAzB,EAA+B;EAC7B,SAAOA,IAAI,CAAC8G,MAAL,CAAY,CAAZ,MAAmB,GAAnB,GAAyB9G,IAAzB,GAAgC,MAAMA,IAA7C;EACD;;EAED,SAAS+G,WAAT,CAAqBC,QAArB,EAA+B1G,QAA/B,EAAyC;EACvC,MAAI,CAAC0G,QAAL,EAAe,OAAO1G,QAAP;EAEf,sBACKA,QADL;EAEEP,IAAAA,QAAQ,EAAE8G,eAAe,CAACG,QAAD,CAAf,GAA4B1G,QAAQ,CAACP;EAFjD;EAID;;EAED,SAASkH,aAAT,CAAuBD,QAAvB,EAAiC1G,QAAjC,EAA2C;EACzC,MAAI,CAAC0G,QAAL,EAAe,OAAO1G,QAAP;EAEf,MAAM4G,IAAI,GAAGL,eAAe,CAACG,QAAD,CAA5B;EAEA,MAAI1G,QAAQ,CAACP,QAAT,CAAkBoH,OAAlB,CAA0BD,IAA1B,MAAoC,CAAxC,EAA2C,OAAO5G,QAAP;EAE3C,sBACKA,QADL;EAEEP,IAAAA,QAAQ,EAAEO,QAAQ,CAACP,QAAT,CAAkBqH,MAAlB,CAAyBF,IAAI,CAACX,MAA9B;EAFZ;EAID;;EAED,SAASc,SAAT,CAAmB/G,QAAnB,EAA6B;EAC3B,SAAO,OAAOA,QAAP,KAAoB,QAApB,GAA+BA,QAA/B,GAA0CgH,UAAU,CAAChH,QAAD,CAA3D;EACD;;EAED,SAASiH,aAAT,CAAuBC,UAAvB,EAAmC;EACjC,SAAO,YAAM;EACX,MAAA1E,SAAS,QAAQ,mCAAR,AAAA,CAAT,CAAA;EACD,GAFD;EAGD;;EAED,SAAS2E,IAAT,GAAgB;EAEhB;;;;;;;;MAMMC;;;;;;;;;;;;;;YAQJC,aAAa,UAAArH,QAAQ;EAAA,aAAI,MAAKsH,UAAL,CAAgBtH,QAAhB,EAA0B,MAA1B,CAAJ;EAAA;;YACrBuH,gBAAgB,UAAAvH,QAAQ;EAAA,aAAI,MAAKsH,UAAL,CAAgBtH,QAAhB,EAA0B,SAA1B,CAAJ;EAAA;;YACxBwH,eAAe;EAAA,aAAML,IAAN;EAAA;;YACfM,cAAc;EAAA,aAAMN,IAAN;EAAA;;;;;;;WAVdG,aAAA,oBAAWtH,QAAX,EAAqB0H,MAArB,EAA6B;EAAA,sBACa,KAAK5H,KADlB;EAAA,2CACnB4G,QADmB;EAAA,QACnBA,QADmB,qCACR,EADQ;EAAA,0CACJvH,OADI;EAAA,QACJA,OADI,oCACM,EADN;EAE3BA,IAAAA,OAAO,CAACuI,MAAR,GAAiBA,MAAjB;EACAvI,IAAAA,OAAO,CAACa,QAAR,GAAmByG,WAAW,CAACC,QAAD,EAAW3C,cAAc,CAAC/D,QAAD,CAAzB,CAA9B;EACAb,IAAAA,OAAO,CAACQ,GAAR,GAAcoH,SAAS,CAAC5H,OAAO,CAACa,QAAT,CAAvB;EACD;;WAODU,SAAA,kBAAS;EAAA,uBAC0D,KAAKZ,KAD/D;EAAA,6CACC4G,QADD;EAAA,QACCA,QADD,sCACY,EADZ;EAAA,4CACgBvH,OADhB;EAAA,QACgBA,OADhB,qCAC0B,EAD1B;EAAA,6CAC8Ba,QAD9B;EAAA,QAC8BA,QAD9B,sCACyC,GADzC;EAAA,QACiD2H,IADjD;;EAGP,QAAM1H,OAAO,GAAG;EACd2H,MAAAA,UAAU,EAAE,oBAAAlI,IAAI;EAAA,eAAI6G,eAAe,CAACG,QAAQ,GAAGK,SAAS,CAACrH,IAAD,CAArB,CAAnB;EAAA,OADF;EAEdgI,MAAAA,MAAM,EAAE,KAFM;EAGd1H,MAAAA,QAAQ,EAAE2G,aAAa,CAACD,QAAD,EAAW3C,cAAc,CAAC/D,QAAD,CAAzB,CAHT;EAId6D,MAAAA,IAAI,EAAE,KAAKwD,UAJG;EAKdvD,MAAAA,OAAO,EAAE,KAAKyD,aALA;EAMdM,MAAAA,EAAE,EAAEZ,aAAa,CAAC,AAAD,CANH;EAOda,MAAAA,MAAM,EAAEb,aAAa,CAAC,AAAD,CAPP;EAQdc,MAAAA,SAAS,EAAEd,aAAa,CAAC,AAAD,CARV;EASd3G,MAAAA,MAAM,EAAE,KAAKkH,YATC;EAUd9E,MAAAA,KAAK,EAAE,KAAK+E;EAVE,KAAhB;EAaA,WAAOzI,6BAAC,MAAD,eAAY2I,IAAZ;EAAkB,MAAA,OAAO,EAAE1H,OAA3B;EAAoC,MAAA,aAAa,EAAEd;EAAnD,OAAP;EACD;;;IA9BwBH,cAAK,CAACF;;AAiCjC,EAAa;EACXsI,EAAAA,YAAY,CAACrG,SAAb,GAAyB;EACvB2F,IAAAA,QAAQ,EAAE3H,SAAS,CAACgE,MADG;EAEvB5D,IAAAA,OAAO,EAAEJ,SAAS,CAACkC,MAFI;EAGvBjB,IAAAA,QAAQ,EAAEjB,SAAS,CAAC+D,SAAV,CAAoB,CAAC/D,SAAS,CAACgE,MAAX,EAAmBhE,SAAS,CAACkC,MAA7B,CAApB;EAHa,GAAzB;;EAMAmG,EAAAA,YAAY,CAACjG,SAAb,CAAuBX,iBAAvB,GAA2C,YAAW;EACpD,KAAAc,OAAO,CACL,CAAC,KAAKxB,KAAL,CAAWG,OADP,EAEL,uEACE,yEAHG,CAAP;EAKD,GAND;EAOD;;EC3FD;;;;MAGM+H;;;;;;;;;;;WACJtH,SAAA,kBAAS;EAAA;;EACP,WACE1B,6BAAC2B,OAAD,CAAe,QAAf,QACG,UAAAxB,OAAO,EAAI;EACV,OAAUA,OAAV,IAAAqD,SAAS,QAAU,gDAAV,CAAT,CAAA;EAEA,UAAMxC,QAAQ,GAAG,KAAI,CAACF,KAAL,CAAWE,QAAX,IAAuBb,OAAO,CAACa,QAAhD;EAEA,UAAIiI,OAAJ,EAAarH,KAAb,CALU;EAQV;EACA;EACA;;EACA5B,MAAAA,cAAK,CAAC0G,QAAN,CAAewC,OAAf,CAAuB,KAAI,CAACpI,KAAL,CAAWgB,QAAlC,EAA4C,UAAAqH,KAAK,EAAI;EACnD,YAAIvH,KAAK,IAAI,IAAT,IAAiB5B,cAAK,CAACoJ,cAAN,CAAqBD,KAArB,CAArB,EAAkD;EAChDF,UAAAA,OAAO,GAAGE,KAAV;EAEA,cAAMzI,IAAI,GAAGyI,KAAK,CAACrI,KAAN,CAAYJ,IAAZ,IAAoByI,KAAK,CAACrI,KAAN,CAAYqE,IAA7C;EAEAvD,UAAAA,KAAK,GAAGlB,IAAI,GACRmF,SAAS,CAAC7E,QAAQ,CAACP,QAAV,eAAyB0I,KAAK,CAACrI,KAA/B;EAAsCJ,YAAAA,IAAI,EAAJA;EAAtC,aADD,GAERP,OAAO,CAACyB,KAFZ;EAGD;EACF,OAVD;EAYA,aAAOA,KAAK,GACR5B,cAAK,CAACqJ,YAAN,CAAmBJ,OAAnB,EAA4B;EAAEjI,QAAAA,QAAQ,EAARA,QAAF;EAAY2D,QAAAA,aAAa,EAAE/C;EAA3B,OAA5B,CADQ,GAER,IAFJ;EAGD,KA3BH,CADF;EA+BD;;;IAjCkB5B,cAAK,CAACF;;AAoC3B,EAAa;EACXkJ,EAAAA,MAAM,CAACjH,SAAP,GAAmB;EACjBD,IAAAA,QAAQ,EAAE/B,SAAS,CAACiC,IADH;EAEjBhB,IAAAA,QAAQ,EAAEjB,SAAS,CAACkC;EAFH,GAAnB;;EAKA+G,EAAAA,MAAM,CAAC7G,SAAP,CAAiBC,kBAAjB,GAAsC,UAASC,SAAT,EAAoB;EACxD,KAAAC,OAAO,CACL,EAAE,KAAKxB,KAAL,CAAWE,QAAX,IAAuB,CAACqB,SAAS,CAACrB,QAApC,CADK,EAEL,0KAFK,CAAP;EAKA,KAAAsB,OAAO,CACL,EAAE,CAAC,KAAKxB,KAAL,CAAWE,QAAZ,IAAwBqB,SAAS,CAACrB,QAApC,CADK,EAEL,sKAFK,CAAP;EAID,GAVD;EAWD;;;;;;;ECzDD,IAAI,aAAa,GAAG;MAChB,iBAAiB,EAAE,IAAI;MACvB,WAAW,EAAE,IAAI;MACjB,YAAY,EAAE,IAAI;MAClB,YAAY,EAAE,IAAI;MAClB,WAAW,EAAE,IAAI;MACjB,eAAe,EAAE,IAAI;MACrB,wBAAwB,EAAE,IAAI;MAC9B,wBAAwB,EAAE,IAAI;MAC9B,MAAM,EAAE,IAAI;MACZ,SAAS,EAAE,IAAI;MACf,IAAI,EAAE,IAAI;GACb,CAAC;;EAEF,IAAI,aAAa,GAAG;MAChB,IAAI,EAAE,IAAI;MACV,MAAM,EAAE,IAAI;MACZ,SAAS,EAAE,IAAI;MACf,MAAM,EAAE,IAAI;MACZ,MAAM,EAAE,IAAI;MACZ,SAAS,EAAE,IAAI;MACf,KAAK,EAAE,IAAI;GACd,CAAC;;EAEF,IAAI,mBAAmB,GAAG;MACtB,UAAU,EAAE,IAAI;MAChB,MAAM,EAAE,IAAI;MACZ,YAAY,EAAE,IAAI;MAClB,WAAW,EAAE,IAAI;MACjB,SAAS,EAAE,IAAI;GAClB,CAAC;;EAEF,IAAI,YAAY,GAAG;MACf,UAAU,EAAE,IAAI;MAChB,OAAO,EAAE,IAAI;MACb,YAAY,EAAE,IAAI;MAClB,WAAW,EAAE,IAAI;MACjB,SAAS,EAAE,IAAI;MACf,IAAI,EAAE,IAAI;GACb,CAAC;;EAEF,IAAI,YAAY,GAAG,EAAE,CAAC;EACtB,YAAY,CAACtB,OAAO,CAAC,UAAU,CAAC,GAAG,mBAAmB,CAAC;;EAEvD,SAAS,UAAU,CAAC,SAAS,EAAE;MAC3B,IAAIA,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;UAC3B,OAAO,YAAY,CAAC;OACvB;MACD,OAAO,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,IAAI,aAAa,CAAC;GAC/D;;EAED,IAAI,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;EAC3C,IAAI,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC;EACrD,IAAI4J,uBAAqB,GAAG,MAAM,CAAC,qBAAqB,CAAC;EACzD,IAAI,wBAAwB,GAAG,MAAM,CAAC,wBAAwB,CAAC;EAC/D,IAAI,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;EAC3C,IAAI,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC;;EAEvC,SAAS,oBAAoB,CAAC,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE;MACvE,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE;;;UAGrC,IAAI,eAAe,EAAE;cACjB,IAAI,kBAAkB,GAAG,cAAc,CAAC,eAAe,CAAC,CAAC;cACzD,IAAI,kBAAkB,IAAI,kBAAkB,KAAK,eAAe,EAAE;kBAC9D,oBAAoB,CAAC,eAAe,EAAE,kBAAkB,EAAE,SAAS,CAAC,CAAC;eACxE;WACJ;;UAED,IAAI,IAAI,GAAG,mBAAmB,CAAC,eAAe,CAAC,CAAC;;UAEhD,IAAIA,uBAAqB,EAAE;cACvB,IAAI,GAAG,IAAI,CAAC,MAAM,CAACA,uBAAqB,CAAC,eAAe,CAAC,CAAC,CAAC;WAC9D;;UAED,IAAI,aAAa,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;UAChD,IAAI,aAAa,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;;UAEhD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;cAClC,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;cAClB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,aAAa,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,aAAa,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE;kBAC3I,IAAI,UAAU,GAAG,wBAAwB,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;kBAChE,IAAI;;sBAEA,cAAc,CAAC,eAAe,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;mBACpD,CAAC,OAAO,CAAC,EAAE,EAAE;eACjB;WACJ;;UAED,OAAO,eAAe,CAAC;OAC1B;;MAED,OAAO,eAAe,CAAC;GAC1B;;EAED,4BAAc,GAAG,oBAAoB,CAAC;;EC/FtC;;;;EAGA,SAASC,UAAT,CAAoBzJ,SAApB,EAA+B;EAC7B,MAAMO,WAAW,oBAAiBP,SAAS,CAACO,WAAV,IAAyBP,SAAS,CAACI,IAApD,OAAjB;;EACA,MAAMsJ,CAAC,GAAG,SAAJA,CAAI,CAAA1I,KAAK,EAAI;EAAA,QACT2I,mBADS,GACkC3I,KADlC,CACT2I,mBADS;EAAA,QACeC,cADf,iCACkC5I,KADlC;;EAGjB,WACEd,6BAAC2B,OAAD,CAAe,QAAf,QACG,UAAAxB,OAAO,EAAI;EACV,OACEA,OADF,IAAAqD,SAAS,iCAEgBnD,WAFhB,4BAAT,CAAA;EAIA,aACEL,6BAAC,SAAD,eACM0J,cADN,EAEMvJ,OAFN;EAGE,QAAA,GAAG,EAAEsJ;EAHP,SADF;EAOD,KAbH,CADF;EAiBD,GApBD;;EAsBAD,EAAAA,CAAC,CAACnJ,WAAF,GAAgBA,WAAhB;EACAmJ,EAAAA,CAAC,CAACG,gBAAF,GAAqB7J,SAArB;;EAEA,EAAa;EACX0J,IAAAA,CAAC,CAACzH,SAAF,GAAc;EACZ0H,MAAAA,mBAAmB,EAAE1J,SAAS,CAAC+D,SAAV,CAAoB,CACvC/D,SAAS,CAACgE,MAD6B,EAEvChE,SAAS,CAAC+C,IAF6B,EAGvC/C,SAAS,CAACkC,MAH6B,CAApB;EADT,KAAd;EAOD;;EAED,SAAO2H,wBAAY,CAACJ,CAAD,EAAI1J,SAAJ,CAAnB;EACD;;ECzCD,IAAM+J,UAAU,GAAG7J,cAAK,CAAC6J,UAAzB;AAEA,EAAO,SAASC,UAAT,GAAsB;EAC3B,EAAa;EACX,MACE,OAAOD,UAAP,KAAsB,UADxB,KAAArG,SAAS,QAEP,yDAFO,CAAT,CAAA;EAID;;EAED,SAAOqG,UAAU,CAAChI,cAAD,CAAjB;EACD;AAED,EAAO,SAASkI,WAAT,GAAuB;EAC5B,EAAa;EACX,MACE,OAAOF,UAAP,KAAsB,UADxB,KAAArG,SAAS,QAEP,0DAFO,CAAT,CAAA;EAID;;EAED,SAAOqG,UAAU,CAACG,OAAD,CAAV,CAAoBhJ,QAA3B;EACD;AAED,EAAO,SAASiJ,SAAT,GAAqB;EAC1B,EAAa;EACX,MACE,OAAOJ,UAAP,KAAsB,UADxB,KAAArG,SAAS,QAEP,wDAFO,CAAT,CAAA;EAID;;EAED,MAAM5B,KAAK,GAAGiI,UAAU,CAACG,OAAD,CAAV,CAAoBpI,KAAlC;EACA,SAAOA,KAAK,GAAGA,KAAK,CAAChB,MAAT,GAAkB,EAA9B;EACD;AAED,EAAO,SAASsJ,aAAT,CAAuBxJ,IAAvB,EAA6B;EAClC,EAAa;EACX,MACE,OAAOmJ,UAAP,KAAsB,UADxB,KAAArG,SAAS,QAEP,4DAFO,CAAT,CAAA;EAID;;EAED,MAAMxC,QAAQ,GAAG+I,WAAW,EAA5B;EACA,MAAMnI,KAAK,GAAGiI,UAAU,CAACG,OAAD,CAAV,CAAoBpI,KAAlC;EAEA,SAAOlB,IAAI,GAAGmF,SAAS,CAAC7E,QAAQ,CAACP,QAAV,EAAoBC,IAApB,CAAZ,GAAwCkB,KAAnD;EACD;;ECvDY;EACX,MAAI,OAAOuI,MAAP,KAAkB,WAAtB,EAAmC;EACjC,QAAMC,QAAM,GAAGD,MAAf;EACA,QAAMjF,GAAG,GAAG,wBAAZ;EACA,QAAMmF,UAAU,GAAG;EAAEC,MAAAA,GAAG,EAAE,UAAP;EAAmBC,MAAAA,GAAG,EAAE,YAAxB;EAAsCC,MAAAA,GAAG,EAAE;EAA3C,KAAnB;;EAEA,QAAIJ,QAAM,CAAClF,GAAD,CAAN,IAAekF,QAAM,CAAClF,GAAD,CAAN,KAAgBuF,KAAnC,EAA6D;EAC3D,UAAMC,gBAAgB,GAAGL,UAAU,CAACD,QAAM,CAAClF,GAAD,CAAP,CAAnC;EACA,UAAMyF,kBAAkB,GAAGN,UAAU,CAACI,KAAD,CAArC,CAF2D;EAK3D;;EACA,YAAM,IAAIpD,KAAJ,CACJ,yBAAuBsD,kBAAvB,2EAC2CD,gBAD3C,8CADI,CAAN;EAKD;;EAEDN,IAAAA,QAAM,CAAClF,GAAD,CAAN,GAAcuF,KAAd;EACD;EACF;;;;;;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/node_modules/react-router/umd/react-router.min.js b/node_modules/react-router/umd/react-router.min.js new file mode 100644 index 0000000..e97f0bc --- /dev/null +++ b/node_modules/react-router/umd/react-router.min.js @@ -0,0 +1,2 @@ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("react")):"function"==typeof define&&define.amd?define(["exports","react"],e):e((t=t||self).ReactRouter={},t.React)}(this,function(t,c){"use strict";var s="default"in c?c.default:c;function r(t,e){t.prototype=Object.create(e.prototype),(t.prototype.constructor=t).__proto__=e}function e(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function n(t,e){return t(e={exports:{}},e.exports),e.exports}var o=n(function(t,e){Object.defineProperty(e,"__esModule",{value:!0});var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,o=n?Symbol.for("react.portal"):60106,i=n?Symbol.for("react.fragment"):60107,a=n?Symbol.for("react.strict_mode"):60108,c=n?Symbol.for("react.profiler"):60114,u=n?Symbol.for("react.provider"):60109,s=n?Symbol.for("react.context"):60110,p=n?Symbol.for("react.async_mode"):60111,l=n?Symbol.for("react.concurrent_mode"):60111,f=n?Symbol.for("react.forward_ref"):60112,h=n?Symbol.for("react.suspense"):60113,d=n?Symbol.for("react.suspense_list"):60120,m=n?Symbol.for("react.memo"):60115,y=n?Symbol.for("react.lazy"):60116,v=n?Symbol.for("react.fundamental"):60117,g=n?Symbol.for("react.responder"):60118;function b(t){if("object"==typeof t&&null!==t){var e=t.$$typeof;switch(e){case r:switch(t=t.type){case p:case l:case i:case c:case a:case h:return t;default:switch(t=t&&t.$$typeof){case s:case f:case u:return t;default:return e}}case y:case m:case o:return e}}}function x(t){return b(t)===l}e.typeOf=b,e.AsyncMode=p,e.ConcurrentMode=l,e.ContextConsumer=s,e.ContextProvider=u,e.Element=r,e.ForwardRef=f,e.Fragment=i,e.Lazy=y,e.Memo=m,e.Portal=o,e.Profiler=c,e.StrictMode=a,e.Suspense=h,e.isValidElementType=function(t){return"string"==typeof t||"function"==typeof t||t===i||t===l||t===c||t===a||t===h||t===d||"object"==typeof t&&null!==t&&(t.$$typeof===y||t.$$typeof===m||t.$$typeof===u||t.$$typeof===s||t.$$typeof===f||t.$$typeof===v||t.$$typeof===g)},e.isAsyncMode=function(t){return x(t)||b(t)===p},e.isConcurrentMode=x,e.isContextConsumer=function(t){return b(t)===s},e.isContextProvider=function(t){return b(t)===u},e.isElement=function(t){return"object"==typeof t&&null!==t&&t.$$typeof===r},e.isForwardRef=function(t){return b(t)===f},e.isFragment=function(t){return b(t)===i},e.isLazy=function(t){return b(t)===y},e.isMemo=function(t){return b(t)===m},e.isPortal=function(t){return b(t)===o},e.isProfiler=function(t){return b(t)===c},e.isStrictMode=function(t){return b(t)===a},e.isSuspense=function(t){return b(t)===h}});e(o);o.typeOf,o.AsyncMode,o.ConcurrentMode,o.ContextConsumer,o.ContextProvider,o.Element,o.ForwardRef,o.Fragment,o.Lazy,o.Memo,o.Portal,o.Profiler,o.StrictMode,o.Suspense,o.isValidElementType,o.isAsyncMode,o.isConcurrentMode,o.isContextConsumer,o.isContextProvider,o.isElement,o.isForwardRef,o.isFragment,o.isLazy,o.isMemo,o.isPortal,o.isProfiler,o.isStrictMode,o.isSuspense;var i=n(function(t,e){});e(i);i.typeOf,i.AsyncMode,i.ConcurrentMode,i.ContextConsumer,i.ContextProvider,i.Element,i.ForwardRef,i.Fragment,i.Lazy,i.Memo,i.Portal,i.Profiler,i.StrictMode,i.Suspense,i.isValidElementType,i.isAsyncMode,i.isConcurrentMode,i.isContextConsumer,i.isContextProvider,i.isElement,i.isForwardRef,i.isFragment,i.isLazy,i.isMemo,i.isPortal,i.isProfiler,i.isStrictMode,i.isSuspense;var a=n(function(t){t.exports=o}),u=(a.isValidElementType,Object.getOwnPropertySymbols),p=Object.prototype.hasOwnProperty,l=Object.prototype.propertyIsEnumerable;!function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},n=0;n<10;n++)e["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(e).map(function(t){return e[t]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(t){r[t]=t}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(t){return!1}}()||Object.assign,Function.call.bind(Object.prototype.hasOwnProperty);function f(){}function h(){}h.resetWarningCache=f;var d=n(function(t){t.exports=function(){function t(t,e,n,r,o,i){if("SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"!==i){var a=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw a.name="Invariant Violation",a}}function e(){return t}var n={array:t.isRequired=t,bool:t,func:t,number:t,object:t,string:t,symbol:t,any:t,arrayOf:e,element:t,elementType:t,instanceOf:e,node:t,objectOf:e,oneOf:e,oneOfType:e,shape:e,exact:e,checkPropTypes:h,resetWarningCache:f};return n.PropTypes=n}()});function v(){return(v=Object.assign||function(t){for(var e=1;ee?n.splice(e,n.length-e,r):n.push(r),p({action:"PUSH",location:r,index:e,entries:n})}})},replace:function(t,e){var n="REPLACE",r=C(t,e,l(),y.location);s.confirmTransitionTo(r,n,o,function(t){t&&(y.entries[y.index]=r,p({action:n,location:r}))})},go:m,goBack:function(){m(-1)},goForward:function(){m(1)},canGo:function(t){var e=y.index+t;return 0<=e&&e 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to) {\n var from = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n var toParts = to && to.split('/') || [];\n var fromParts = from && from.split('/') || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash = void 0;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) {\n fromParts.unshift('..');\n }if (mustEndAbs && fromParts[0] !== '' && (!fromParts[0] || !isAbsolute(fromParts[0]))) fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction valueEqual(a, b) {\n if (a === b) return true;\n\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n return Array.isArray(b) && a.length === b.length && a.every(function (item, index) {\n return valueEqual(item, b[index]);\n });\n }\n\n var aType = typeof a === 'undefined' ? 'undefined' : _typeof(a);\n var bType = typeof b === 'undefined' ? 'undefined' : _typeof(b);\n\n if (aType !== bType) return false;\n\n if (aType === 'object') {\n var aValue = a.valueOf();\n var bValue = b.valueOf();\n\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n var aKeys = Object.keys(a);\n var bKeys = Object.keys(b);\n\n if (aKeys.length !== bKeys.length) return false;\n\n return aKeys.every(function (key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n\nexport default valueEqual;","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n\n if (isProduction) {\n throw new Error(prefix);\n } else {\n throw new Error(prefix + \": \" + (message || ''));\n }\n}\n\nexport default invariant;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return new RegExp('^' + prefix + '(\\\\/|\\\\?|#|$)', 'i').test(path);\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n var hashIndex = window.location.href.indexOf('#');\n window.location.replace(window.location.href.slice(0, hashIndex >= 0 ? hashIndex : 0) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n return '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","export default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","import React, { Component } from 'react';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport warning from 'tiny-warning';\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {};\n\nfunction getUniqueId() {\n var key = '__global_unique_id__';\n return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1;\n}\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + getUniqueId() + '__';\n\n var Provider = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Provider, _Component);\n\n function Provider() {\n var _this;\n\n _this = _Component.apply(this, arguments) || this;\n _this.emitter = createEventEmitter(_this.props.value);\n return _this;\n }\n\n var _proto = Provider.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0;\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (process.env.NODE_ENV !== 'production') {\n warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: ' + changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes.object.isRequired, _Provider$childContex);\n\n var Consumer = /*#__PURE__*/function (_Component2) {\n _inheritsLoose(Consumer, _Component2);\n\n function Consumer() {\n var _this2;\n\n _this2 = _Component2.apply(this, arguments) || this;\n _this2.state = {\n value: _this2.getValue()\n };\n\n _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n };\n\n return _this2;\n }\n\n var _proto2 = Consumer.prototype;\n\n _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n _proto2.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n _proto2.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = PropTypes.object, _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nvar index = React.createContext || createReactContext;\n\nexport default index;\n","import createNamedContext from \"./createNameContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nexport default createNamedContext;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport HistoryContext from \"./HistoryContext.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n } else {\n this._pendingLocation = location;\n }\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) this.unlisten();\n }\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change \"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\n/**\n * The public API for a that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = res[2] || defaultDelimiter\n var pattern = capture || group\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options))\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$')\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n\n const generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\nfunction generatePath(path = \"/\", params = {}) {\n return path === \"/\" ? path : compilePath(path)(params, { pretty: true });\n}\n\nexport default generatePath;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && children.length === 0) {\n children = null;\n }\n\n return (\n \n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n \n );\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use and in the same route; will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with \", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return ;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\n/**\n * The public API for rendering the first that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","'use strict';\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar ReactIs = require('react-is');\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\n\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\n\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\n\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\n\nvar TYPE_STATICS = {};\nTYPE_STATICS[ReactIs.ForwardRef] = FORWARD_REF_STATICS;\n\nfunction getStatics(component) {\n if (ReactIs.isMemo(component)) {\n return MEMO_STATICS;\n }\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\n\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n\n return targetComponent;\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport Context from \"./RouterContext.js\";\nimport HistoryContext from \"./HistoryContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(HistoryContext);\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(Context).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(Context).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n const location = useLocation();\n const match = useContext(Context).match;\n\n return path ? matchPath(location.pathname, path) : match;\n}\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for prompting the user before navigating away from a screen.\n */\nfunction Prompt({ message, when = true }) {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n if (!when || context.staticContext) return null;\n\n const method = context.history.block;\n\n return (\n {\n self.release = method(message);\n }}\n onUpdate={(self, prevProps) => {\n if (prevProps.message !== message) {\n self.release();\n self.release = method(message);\n }\n }}\n onUnmount={self => {\n self.release();\n }}\n message={message}\n />\n );\n }}\n \n );\n}\n\nif (__DEV__) {\n const messageType = PropTypes.oneOfType([PropTypes.func, PropTypes.string]);\n\n Prompt.propTypes = {\n when: PropTypes.bool,\n message: messageType.isRequired\n };\n}\n\nexport default Prompt;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, locationsAreEqual } from \"history\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle.js\";\nimport RouterContext from \"./RouterContext.js\";\nimport generatePath from \"./generatePath.js\";\n\n/**\n * The public API for navigating programmatically with a component.\n */\nfunction Redirect({ computedMatch, to, push = false }) {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history, staticContext } = context;\n\n const method = push ? history.push : history.replace;\n const location = createLocation(\n computedMatch\n ? typeof to === \"string\"\n ? generatePath(to, computedMatch.params)\n : {\n ...to,\n pathname: generatePath(to.pathname, computedMatch.params)\n }\n : to\n );\n\n // When rendering in a static context,\n // set the new location immediately.\n if (staticContext) {\n method(location);\n return null;\n }\n\n return (\n {\n method(location);\n }}\n onUpdate={(self, prevProps) => {\n const prevLocation = createLocation(prevProps.to);\n if (\n !locationsAreEqual(prevLocation, {\n ...location,\n key: prevLocation.key\n })\n ) {\n method(location);\n }\n }}\n to={to}\n />\n );\n }}\n \n );\n}\n\nif (__DEV__) {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nexport default Redirect;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport hoistStatics from \"hoist-non-react-statics\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * A public higher-order component to access the imperative API\n */\nfunction withRouter(Component) {\n const displayName = `withRouter(${Component.displayName || Component.name})`;\n const C = props => {\n const { wrappedComponentRef, ...remainingProps } = props;\n\n return (\n \n {context => {\n invariant(\n context,\n `You should not use <${displayName} /> outside a `\n );\n return (\n \n );\n }}\n \n );\n };\n\n C.displayName = displayName;\n C.WrappedComponent = Component;\n\n if (__DEV__) {\n C.propTypes = {\n wrappedComponentRef: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.object\n ])\n };\n }\n\n return hoistStatics(C, Component);\n}\n\nexport default withRouter;\n"],"names":["_inheritsLoose","subClass","superClass","prototype","Object","create","constructor","__proto__","defineProperty","exports","value","b","Symbol","for","c","d","e","f","g","h","k","l","m","n","p","q","r","t","v","w","x","a","u","$$typeof","type","y","module","require$$0","getOwnPropertySymbols","hasOwnProperty","propIsEnumerable","propertyIsEnumerable","assign","test1","String","getOwnPropertyNames","test2","i","fromCharCode","map","join","test3","split","forEach","letter","keys","err","shouldUseNative","Function","call","bind","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","props","propName","componentName","location","propFullName","secret","Error","name","getShim","ReactPropTypes","array","isRequired","bool","func","number","object","string","symbol","any","arrayOf","element","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","require$$2","_extends","target","arguments","length","source","key","apply","this","isAbsolute","pathname","charAt","spliceOne","list","index","pop","_typeof","iterator","obj","prefix","invariant","condition","createPath","search","hash","path","createLocation","state","currentLocation","hashIndex","indexOf","substr","searchIndex","parsePath","undefined","decodeURI","URIError","to","from","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","concat","hasTrailingSlash","last","up","part","unshift","result","resolvePathname","locationsAreEqual","valueEqual","Array","isArray","every","item","aType","aValue","valueOf","bValue","aKeys","bKeys","window","document","createElement","clamp","lowerBound","upperBound","Math","min","max","createMemoryHistory","_props","getUserConfirmation","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","_props$keyLength","keyLength","transitionManager","prompt","listeners","setPrompt","nextPrompt","confirmTransitionTo","action","callback","appendListener","fn","isActive","listener","push","filter","notifyListeners","_len","args","_key","createTransitionManager","setState","nextState","history","entries","createKey","random","toString","entry","createHref","go","nextIndex","ok","nextEntries","slice","splice","replace","goBack","goForward","canGo","block","listen","MAX_SIGNED_31_BIT_INT","commonjsGlobal","globalThis","global","React","createContext","defaultValue","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","getUniqueId","Provider","_Component","_this","emitter","handlers","on","handler","off","get","set","newValue","changedBits","createEventEmitter","_proto","getChildContext","_ref","componentWillReceiveProps","nextProps","oldValue","objectIs","render","children","Component","childContextTypes","Consumer","_Component2","_this2","getValue","onUpdate","observedBits","_proto2","componentDidMount","context","componentWillUnmount","onlyChild","contextTypes","historyContext","displayName","createNamedContext","Router","_isMounted","_pendingLocation","staticContext","unlisten","computeRootMatch","url","params","isExact","RouterContext","match","HistoryContext","MemoryRouter","createHistory","Lifecycle","onMount","componentDidUpdate","prevProps","onUnmount","str","options","tokensToFunction","parse","arr","pathToRegexp","tokensToRegExp","PATH_REGEXP","RegExp","res","group","tokens","defaultDelimiter","delimiter","exec","escaped","offset","next","capture","modifier","asterisk","partial","repeat","optional","pattern","escapeString","encodeURIComponentPretty","encodeURI","charCodeAt","toUpperCase","matches","opts","data","encode","pretty","encodeURIComponent","token","segment","TypeError","isarray","JSON","stringify","j","test","attachKeys","re","flags","sensitive","strict","end","route","endsWithDelimiter","groups","regexpToRegexp","parts","arrayToRegexp","stringToRegexp","cache","cacheLimit","cacheCount","generatePath","generator","compile","compilePath","matchPath","reduce","matched","cacheKey","pathCache","regexp","values","memo","Route","computedMatch","component","_objectWithoutPropertiesLoose","excluded","sourceKeys","addLeadingSlash","createURL","staticHandler","noop","StaticRouter","handlePush","navigateTo","handleReplace","handleListen","handleBlock","basename","addBasename","rest","base","stripBasename","Switch","Children","child","isValidElement","cloneElement","REACT_STATICS","contextType","defaultProps","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","ReactIs","isMemo","ForwardRef","getOwnPropertyDescriptor","getPrototypeOf","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","descriptor","useContext","useLocation","Context","message","when","method","self","release","prevLocation","C","wrappedComponentRef","remainingProps","ref","WrappedComponent","hoistStatics"],"mappings":"2QAAe,SAASA,EAAeC,EAAUC,GAC/CD,EAASE,UAAYC,OAAOC,OAAOH,EAAWC,YAC9CF,EAASE,UAAUG,YAAcL,GACxBM,UAAYL,yLCMVE,OAAOI,eAAeC,EAAQ,aAAa,CAACC,OAAM,IAC/D,IAAIC,EAAE,mBAAoBC,QAAQA,OAAOC,IAAIC,EAAEH,EAAEC,OAAOC,IAAI,iBAAiB,MAAME,EAAEJ,EAAEC,OAAOC,IAAI,gBAAgB,MAAMG,EAAEL,EAAEC,OAAOC,IAAI,kBAAkB,MAAMI,EAAEN,EAAEC,OAAOC,IAAI,qBAAqB,MAAMK,EAAEP,EAAEC,OAAOC,IAAI,kBAAkB,MAAMM,EAAER,EAAEC,OAAOC,IAAI,kBAAkB,MAAMO,EAAET,EAAEC,OAAOC,IAAI,iBAAiB,MAAMQ,EAAEV,EAAEC,OAAOC,IAAI,oBAAoB,MAAMS,EAAEX,EAAEC,OAAOC,IAAI,yBAAyB,MAAMU,EAAEZ,EAAEC,OAAOC,IAAI,qBAAqB,MAAMW,EAAEb,EAAEC,OAAOC,IAAI,kBAAkB,MAAMY,EAAEd,EAAEC,OAAOC,IAAI,uBACpf,MAAMa,EAAEf,EAAEC,OAAOC,IAAI,cAAc,MAAMc,EAAEhB,EAAEC,OAAOC,IAAI,cAAc,MAAMe,EAAEjB,EAAEC,OAAOC,IAAI,qBAAqB,MAAMgB,EAAElB,EAAEC,OAAOC,IAAI,mBAAmB,MAAM,SAASiB,EAAEC,GAAG,GAAG,iBAAkBA,GAAG,OAAOA,EAAE,CAAC,IAAIC,EAAED,EAAEE,SAAS,OAAOD,GAAG,KAAKlB,EAAE,OAAOiB,EAAEA,EAAEG,MAAQ,KAAKb,EAAE,KAAKC,EAAE,KAAKN,EAAE,KAAKE,EAAE,KAAKD,EAAE,KAAKO,EAAE,OAAOO,EAAE,QAAQ,OAAOA,EAAEA,GAAGA,EAAEE,UAAY,KAAKb,EAAE,KAAKG,EAAE,KAAKJ,EAAE,OAAOY,EAAE,QAAQ,OAAOC,GAAG,KAAKL,EAAE,KAAKD,EAAE,KAAKX,EAAE,OAAOiB,IAAI,SAASG,EAAEJ,GAAG,OAAOD,EAAEC,KAAKT,EAAEb,SAAeqB,EAAErB,YAAkBY,EACzeZ,iBAAuBa,EAAEb,kBAAwBW,EAAEX,kBAAwBU,EAAEV,UAAgBK,EAAEL,aAAmBc,EAAEd,WAAiBO,EAAEP,OAAakB,EAAElB,OAAaiB,EAAEjB,SAAeM,EAAEN,WAAiBS,EAAET,aAAmBQ,EAAER,WAAiBe,EAC/Of,qBAA2B,SAASsB,GAAG,MAAM,iBAAkBA,GAAG,mBAAoBA,GAAGA,IAAIf,GAAGe,IAAIT,GAAGS,IAAIb,GAAGa,IAAId,GAAGc,IAAIP,GAAGO,IAAIN,GAAG,iBAAkBM,GAAG,OAAOA,IAAIA,EAAEE,WAAWN,GAAGI,EAAEE,WAAWP,GAAGK,EAAEE,WAAWd,GAAGY,EAAEE,WAAWb,GAAGW,EAAEE,WAAWV,GAAGQ,EAAEE,WAAWL,GAAGG,EAAEE,WAAWJ,IAAIpB,cAAoB,SAASsB,GAAG,OAAOI,EAAEJ,IAAID,EAAEC,KAAKV,GAAGZ,mBAAyB0B,EAAE1B,oBAA0B,SAASsB,GAAG,OAAOD,EAAEC,KAAKX,GAAGX,oBAA0B,SAASsB,GAAG,OAAOD,EAAEC,KAAKZ,GACjdV,YAAkB,SAASsB,GAAG,MAAM,iBAAkBA,GAAG,OAAOA,GAAGA,EAAEE,WAAWnB,GAAGL,eAAqB,SAASsB,GAAG,OAAOD,EAAEC,KAAKR,GAAGd,aAAmB,SAASsB,GAAG,OAAOD,EAAEC,KAAKf,GAAGP,SAAe,SAASsB,GAAG,OAAOD,EAAEC,KAAKJ,GAAGlB,SAAe,SAASsB,GAAG,OAAOD,EAAEC,KAAKL,GAAGjB,WAAiB,SAASsB,GAAG,OAAOD,EAAEC,KAAKhB,GAAGN,aAAmB,SAASsB,GAAG,OAAOD,EAAEC,KAAKb,GAAGT,eAAqB,SAASsB,GAAG,OAAOD,EAAEC,KAAKd,GAAGR,aAAmB,SAASsB,GAAG,OAAOD,EAAEC,KAAKP,gyBCXxcY,UAAiBC,ICKfC,wBAAwBlC,OAAOkC,uBAC/BC,EAAiBnC,OAAOD,UAAUoC,eAClCC,EAAmBpC,OAAOD,UAAUsC,sBAUxC,WACC,IACC,IAAKrC,OAAOsC,OACX,OAAO,EAMR,IAAIC,EAAQ,IAAIC,OAAO,OAEvB,GADAD,EAAM,GAAK,KACkC,MAAzCvC,OAAOyC,oBAAoBF,GAAO,GACrC,OAAO,EAKR,IADA,IAAIG,EAAQ,GACHC,EAAI,EAAGA,EAAI,GAAIA,IACvBD,EAAM,IAAMF,OAAOI,aAAaD,IAAMA,EAKvC,GAAwB,eAHX3C,OAAOyC,oBAAoBC,GAAOG,IAAI,SAAU1B,GAC5D,OAAOuB,EAAMvB,KAEH2B,KAAK,IACf,OAAO,EAIR,IAAIC,EAAQ,GAIZ,MAHA,uBAAuBC,MAAM,IAAIC,QAAQ,SAAUC,GAClDH,EAAMG,GAAUA,IAGf,yBADElD,OAAOmD,KAAKnD,OAAOsC,OAAO,GAAIS,IAAQD,KAAK,IAM9C,MAAOM,GAER,OAAO,GAIQC,IAAoBrD,OAAOsC,OCjDlCgB,SAASC,KAAKC,KAAKxD,OAAOD,UAAUoC,gBCJ9C,SAASsB,KACT,SAASC,KACTA,EAAuBC,kBAAoBF,EAE3C,oBCEEzB,UDFe,WACf,SAAS4B,EAAKC,EAAOC,EAAUC,EAAeC,EAAUC,EAAcC,GACpE,GERuB,iDFQnBA,EAAJ,CAIA,IAAId,EAAM,IAAIe,MACZ,mLAKF,MADAf,EAAIgB,KAAO,sBACLhB,GAGR,SAASiB,IACP,OAAOT,EAIT,IAAIU,EAAiB,CACnBC,MAPFX,EAAKY,WAAaZ,EAQhBa,KAAMb,EACNc,KAAMd,EACNe,OAAQf,EACRgB,OAAQhB,EACRiB,OAAQjB,EACRkB,OAAQlB,EAERmB,IAAKnB,EACLoB,QAASX,EACTY,QAASrB,EACTsB,YAAatB,EACbuB,WAAYd,EACZe,KAAMxB,EACNyB,SAAUhB,EACViB,MAAOjB,EACPkB,UAAWlB,EACXmB,MAAOnB,EACPoB,MAAOpB,EAEPqB,eAAgBhC,EAChBC,kBAAmBF,GAKrB,OAFAa,EAAeqB,UAAYrB,EC3CVsB,KEjBJ,SAASC,IAetB,OAdAA,EAAW7F,OAAOsC,QAAU,SAAUwD,GACpC,IAAK,IAAInD,EAAI,EAAGA,EAAIoD,UAAUC,OAAQrD,IAAK,CACzC,IAAIsD,EAASF,UAAUpD,GAEvB,IAAK,IAAIuD,KAAOD,EACVjG,OAAOD,UAAUoC,eAAeoB,KAAK0C,EAAQC,KAC/CJ,EAAOI,GAAOD,EAAOC,IAK3B,OAAOJ,IAGOK,MAAMC,KAAML,WCf9B,SAASM,EAAWC,GAClB,MAA8B,MAAvBA,EAASC,OAAO,GAIzB,SAASC,EAAUC,EAAMC,GACvB,IAAK,IAAI/D,EAAI+D,EAAO1F,EAAI2B,EAAI,EAAGxB,EAAIsF,EAAKT,OAAQhF,EAAIG,EAAGwB,GAAK,EAAG3B,GAAK,EAClEyF,EAAK9D,GAAK8D,EAAKzF,GAGjByF,EAAKE,MCVP,IAAIC,EAA4B,mBAAXpG,QAAoD,iBAApBA,OAAOqG,SAAwB,SAAUC,GAAO,cAAcA,GAAS,SAAUA,GAAO,OAAOA,GAAyB,mBAAXtG,QAAyBsG,EAAI5G,cAAgBM,QAAUsG,IAAQtG,OAAOT,UAAY,gBAAkB+G,GCCtQ,IAAIC,EAAS,mBACb,SAASC,EAAUC,GACjB,IAAIA,EAKF,MAAM,IAAI9C,MAAM4C,GCqCpB,SAASG,EAAWlD,GAClB,IAAIsC,EAAWtC,EAASsC,SACpBa,EAASnD,EAASmD,OAClBC,EAAOpD,EAASoD,KAChBC,EAAOf,GAAY,IAGvB,OAFIa,GAAqB,MAAXA,IAAgBE,GAA6B,MAArBF,EAAOZ,OAAO,GAAaY,EAAS,IAAMA,GAC5EC,GAAiB,MAATA,IAAcC,GAA2B,MAAnBD,EAAKb,OAAO,GAAaa,EAAO,IAAMA,GACjEC,EAGT,SAASC,EAAeD,EAAME,EAAOrB,EAAKsB,GACxC,IAAIxD,EAEgB,iBAATqD,GAETrD,EAvCJ,SAAmBqD,GACjB,IAAIf,EAAWe,GAAQ,IACnBF,EAAS,GACTC,EAAO,GACPK,EAAYnB,EAASoB,QAAQ,MAEd,IAAfD,IACFL,EAAOd,EAASqB,OAAOF,GACvBnB,EAAWA,EAASqB,OAAO,EAAGF,IAGhC,IAAIG,EAActB,EAASoB,QAAQ,KAOnC,OALqB,IAAjBE,IACFT,EAASb,EAASqB,OAAOC,GACzBtB,EAAWA,EAASqB,OAAO,EAAGC,IAGzB,CACLtB,SAAUA,EACVa,OAAmB,MAAXA,EAAiB,GAAKA,EAC9BC,KAAe,MAATA,EAAe,GAAKA,GAkBfS,CAAUR,IACZE,MAAQA,QAISO,KAD1B9D,EAAW6B,EAAS,GAAIwB,IACXf,WAAwBtC,EAASsC,SAAW,IAErDtC,EAASmD,OACuB,MAA9BnD,EAASmD,OAAOZ,OAAO,KAAYvC,EAASmD,OAAS,IAAMnD,EAASmD,QAExEnD,EAASmD,OAAS,GAGhBnD,EAASoD,KACqB,MAA5BpD,EAASoD,KAAKb,OAAO,KAAYvC,EAASoD,KAAO,IAAMpD,EAASoD,MAEpEpD,EAASoD,KAAO,QAGJU,IAAVP,QAA0CO,IAAnB9D,EAASuD,QAAqBvD,EAASuD,MAAQA,IAG5E,IACEvD,EAASsC,SAAWyB,UAAU/D,EAASsC,UACvC,MAAO1F,GACP,MAAIA,aAAaoH,SACT,IAAIA,SAAS,aAAehE,EAASsC,SAAW,iFAEhD1F,EAoBV,OAhBIsF,IAAKlC,EAASkC,IAAMA,GAEpBsB,EAEGxD,EAASsC,SAE6B,MAAhCtC,EAASsC,SAASC,OAAO,KAClCvC,EAASsC,SHrFf,SAAyB2B,EAAzB,GACE,IAAIC,EAA0B,EAAnBnC,UAAUC,aAA+B8B,IADtD,EAAA,EACiF,GAE3EK,EAAUF,GAAMA,EAAGjF,MAAM,MAAQ,GACjCoF,EAAYF,GAAQA,EAAKlF,MAAM,MAAQ,GAEvCqF,EAAUJ,GAAM5B,EAAW4B,GAC3BK,EAAYJ,GAAQ7B,EAAW6B,GAC/BK,EAAaF,GAAWC,EAW5B,GATIL,GAAM5B,EAAW4B,GAEnBG,EAAYD,EACHA,EAAQnC,SAEjBoC,EAAUzB,MACVyB,EAAYA,EAAUI,OAAOL,KAG1BC,EAAUpC,OAAQ,MAAO,IAE9B,IAAIyC,OAAmB,EACvB,GAAIL,EAAUpC,OAAQ,CACpB,IAAI0C,EAAON,EAAUA,EAAUpC,OAAS,GACxCyC,EAA4B,MAATC,GAAyB,OAATA,GAA0B,KAATA,OAEpDD,GAAmB,EAIrB,IADA,IAAIE,EAAK,EACAhG,EAAIyF,EAAUpC,OAAa,GAALrD,EAAQA,IAAK,CAC1C,IAAIiG,EAAOR,EAAUzF,GAER,MAATiG,EACFpC,EAAU4B,EAAWzF,GACH,OAATiG,GACTpC,EAAU4B,EAAWzF,GACrBgG,KACSA,IACTnC,EAAU4B,EAAWzF,GACrBgG,KAIJ,IAAKJ,EAAY,KAAOI,KACtBP,EAAUS,QAAQ,OACfN,GAA+B,KAAjBH,EAAU,IAAeA,EAAU,IAAO/B,EAAW+B,EAAU,KAAMA,EAAUS,QAAQ,IAE1G,IAAIC,EAASV,EAAUtF,KAAK,KAI5B,OAFI2F,GAA0C,MAAtBK,EAAOnB,QAAQ,KAAYmB,GAAU,KAEtDA,EGiCiBC,CAAgB/E,EAASsC,SAAUkB,EAAgBlB,WAFvEtC,EAASsC,SAAWkB,EAAgBlB,SAMjCtC,EAASsC,WACZtC,EAASsC,SAAW,KAIjBtC,EAET,SAASgF,EAAkBrH,EAAGpB,GAC5B,OAAOoB,EAAE2E,WAAa/F,EAAE+F,UAAY3E,EAAEwF,SAAW5G,EAAE4G,QAAUxF,EAAEyF,OAAS7G,EAAE6G,MAAQzF,EAAEuE,MAAQ3F,EAAE2F,KF7GhG,SAAS+C,EAAWtH,EAAGpB,GACrB,GAAIoB,IAAMpB,EAAG,OAAO,EAEpB,GAAS,MAALoB,GAAkB,MAALpB,EAAW,OAAO,EAEnC,GAAI2I,MAAMC,QAAQxH,GAChB,OAAOuH,MAAMC,QAAQ5I,IAAMoB,EAAEqE,SAAWzF,EAAEyF,QAAUrE,EAAEyH,MAAM,SAAUC,EAAM3C,GAC1E,OAAOuC,EAAWI,EAAM9I,EAAEmG,MAI9B,IAAI4C,OAAqB,IAAN3H,EAAoB,YAAciF,EAAQjF,GAG7D,GAAI2H,UAFqB,IAAN/I,EAAoB,YAAcqG,EAAQrG,IAExC,OAAO,EAE5B,GAAc,WAAV+I,EAgBJ,OAAO,EAfL,IAAIC,EAAS5H,EAAE6H,UACXC,EAASlJ,EAAEiJ,UAEf,GAAID,IAAW5H,GAAK8H,IAAWlJ,EAAG,OAAO0I,EAAWM,EAAQE,GAE5D,IAAIC,EAAQ1J,OAAOmD,KAAKxB,GACpBgI,EAAQ3J,OAAOmD,KAAK5C,GAExB,OAAImJ,EAAM1D,SAAW2D,EAAM3D,QAEpB0D,EAAMN,MAAM,SAAUlD,GAC3B,OAAO+C,EAAWtH,EAAEuE,GAAM3F,EAAE2F,MEiFqE+C,CAAWtH,EAAE4F,MAAOhH,EAAEgH,OAyExF,oBAAXqC,QAA0BA,OAAOC,UAAYD,OAAOC,SAASC,cAgkBvF,SAASC,EAAM5I,EAAG6I,EAAYC,GAC5B,OAAOC,KAAKC,IAAID,KAAKE,IAAIjJ,EAAG6I,GAAaC,GAO3C,SAASI,EAAoBxG,QACb,IAAVA,IACFA,EAAQ,IAGV,IAAIyG,EAASzG,EACT0G,EAAsBD,EAAOC,oBAC7BC,EAAwBF,EAAOG,eAC/BA,OAA2C,IAA1BD,EAAmC,CAAC,KAAOA,EAC5DE,EAAsBJ,EAAOK,aAC7BA,OAAuC,IAAxBD,EAAiC,EAAIA,EACpDE,EAAmBN,EAAOO,UAC1BA,OAAiC,IAArBD,EAA8B,EAAIA,EAC9CE,EA3pBN,WACE,IAAIC,EAAS,KAiCTC,EAAY,GA4BhB,MAAO,CACLC,UA5DF,SAAmBC,GAGjB,OADAH,EAASG,EACF,WACDH,IAAWG,IAAYH,EAAS,QAyDtCI,oBArDF,SAA6BnH,EAAUoH,EAAQb,EAAqBc,GAIlE,GAAc,MAAVN,EAAgB,CAClB,IAAIjC,EAA2B,mBAAXiC,EAAwBA,EAAO/G,EAAUoH,GAAUL,EAEjD,iBAAXjC,EAC0B,mBAAxByB,EACTA,EAAoBzB,EAAQuC,GAG5BA,GAAS,GAIXA,GAAoB,IAAXvC,QAGXuC,GAAS,IAmCXC,eA7BF,SAAwBC,GACtB,IAAIC,GAAW,EAEf,SAASC,IACHD,GAAUD,EAAGpF,WAAM,EAAQJ,WAIjC,OADAiF,EAAUU,KAAKD,GACR,WACLD,GAAW,EACXR,EAAYA,EAAUW,OAAO,SAAUtC,GACrC,OAAOA,IAASoC,MAmBpBG,gBAdF,WACE,IAAK,IAAIC,EAAO9F,UAAUC,OAAQ8F,EAAO,IAAI5C,MAAM2C,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/ED,EAAKC,GAAQhG,UAAUgG,GAGzBf,EAAU/H,QAAQ,SAAUwI,GAC1B,OAAOA,EAAStF,WAAM,EAAQ2F,OAimBVE,GAExB,SAASC,EAASC,GAChBrG,EAASsG,EAASD,GAElBC,EAAQnG,OAASmG,EAAQC,QAAQpG,OACjC8E,EAAkBc,gBAAgBO,EAAQnI,SAAUmI,EAAQf,QAG9D,SAASiB,IACP,OAAOnC,KAAKoC,SAASC,SAAS,IAAI5E,OAAO,EAAGkD,GAG9C,IAAInE,EAAQqD,EAAMY,EAAc,EAAGF,EAAezE,OAAS,GACvDoG,EAAU3B,EAAe5H,IAAI,SAAU2J,GACzC,OAAmClF,EAAekF,OAAO1E,EAAjC,iBAAV0E,EAAsDH,IAAgDG,EAAMtG,KAAOmG,OAG/HI,EAAavF,EAyCjB,SAASwF,EAAGvL,GACV,IAAIwL,EAAY5C,EAAMoC,EAAQzF,MAAQvF,EAAG,EAAGgL,EAAQC,QAAQpG,OAAS,GAEjEhC,EAAWmI,EAAQC,QAAQO,GAC/B7B,EAAkBK,oBAAoBnH,EAFzB,MAE2CuG,EAAqB,SAAUqC,GACjFA,EACFX,EAAS,CACPb,OALO,MAMPpH,SAAUA,EACV0C,MAAOiG,IAKTV,MA8BN,IAAIE,EAAU,CACZnG,OAAQoG,EAAQpG,OAChBoF,OAAQ,MACRpH,SAAUoI,EAAQ1F,GAClBA,MAAOA,EACP0F,QAASA,EACTK,WAAYA,EACZf,KA1FF,SAAcrE,EAAME,GAElB,IACIvD,EAAWsD,EAAeD,EAAME,EAAO8E,IAAaF,EAAQnI,UAChE8G,EAAkBK,oBAAoBnH,EAFzB,OAE2CuG,EAAqB,SAAUqC,GACrF,GAAKA,EAAL,CACA,IACID,EADYR,EAAQzF,MACI,EACxBmG,EAAcV,EAAQC,QAAQU,MAAM,GAEpCD,EAAY7G,OAAS2G,EACvBE,EAAYE,OAAOJ,EAAWE,EAAY7G,OAAS2G,EAAW3I,GAE9D6I,EAAYnB,KAAK1H,GAGnBiI,EAAS,CACPb,OAfS,OAgBTpH,SAAUA,EACV0C,MAAOiG,EACPP,QAASS,QAuEbG,QAlEF,SAAiB3F,EAAME,GAErB,IAAI6D,EAAS,UACTpH,EAAWsD,EAAeD,EAAME,EAAO8E,IAAaF,EAAQnI,UAChE8G,EAAkBK,oBAAoBnH,EAAUoH,EAAQb,EAAqB,SAAUqC,GAChFA,IACLT,EAAQC,QAAQD,EAAQzF,OAAS1C,EACjCiI,EAAS,CACPb,OAAQA,EACRpH,SAAUA,QA0Dd0I,GAAIA,EACJO,OAnCF,WACEP,GAAI,IAmCJQ,UAhCF,WACER,EAAG,IAgCHS,MA7BF,SAAehM,GACb,IAAIwL,EAAYR,EAAQzF,MAAQvF,EAChC,OAAoB,GAAbwL,GAAkBA,EAAYR,EAAQC,QAAQpG,QA4BrDoH,MAzBF,SAAerC,GAKb,YAJe,IAAXA,IACFA,GAAS,GAGJD,EAAkBG,UAAUF,IAqBnCsC,OAlBF,SAAgB5B,GACd,OAAOX,EAAkBQ,eAAeG,KAmB1C,OAAOU,ECp4BM,SAASvM,EAAeC,EAAUC,GAC/CD,EAASE,UAAYC,OAAOC,OAAOH,EAAWC,YAC9CF,EAASE,UAAUG,YAAcL,GACxBM,UAAYL,ECEvB,IAAIwN,EAAwB,WACxBC,EAAuC,oBAAfC,WAA6BA,WAA+B,oBAAX5D,OAAyBA,OAA2B,oBAAX6D,OAAyBA,OAAS,GAuKxJ,IAAI/G,EAAQgH,EAAMC,eA7HlB,SAA4BC,EAAcC,GACxC,IAAIC,EAAuBC,EAEvBC,EAAc,0BA3CpB,WACE,IAAI9H,EAAM,uBACV,OAAOqH,EAAerH,IAAQqH,EAAerH,IAAQ,GAAK,EAyCZ+H,GAAgB,KAE1DC,EAAwB,SAAUC,GAGpC,SAASD,IACP,IAAIE,EAIJ,OAFAA,EAAQD,EAAWhI,MAAMC,KAAML,YAAcK,MACvCiI,QAvCZ,SAA4B/N,GAC1B,IAAIgO,EAAW,GACf,MAAO,CACLC,GAAI,SAAYC,GACdF,EAAS5C,KAAK8C,IAEhBC,IAAK,SAAaD,GAChBF,EAAWA,EAAS3C,OAAO,SAAU5K,GACnC,OAAOA,IAAMyN,KAGjBE,IAAK,WACH,OAAOpO,GAETqO,IAAK,SAAaC,EAAUC,GAC1BvO,EAAQsO,EACRN,EAASrL,QAAQ,SAAUuL,GACzB,OAAOA,EAAQlO,EAAOuO,OAsBRC,CAAmBV,EAAMvK,MAAMvD,OACxC8N,EAPTxO,EAAesO,EAAUC,GAUzB,IAAIY,EAASb,EAASnO,UAoCtB,OAlCAgP,EAAOC,gBAAkB,WACvB,IAAIC,EAEJ,OAAOA,EAAO,IAASjB,GAAe5H,KAAKiI,QAASY,GAGtDF,EAAOG,0BAA4B,SAAmCC,GACpE,GAAI/I,KAAKvC,MAAMvD,QAAU6O,EAAU7O,MAAO,CACxC,IAEIuO,EAFAO,EAAWhJ,KAAKvC,MAAMvD,MACtBsO,EAAWO,EAAU7O,OA9DjC,SAAkBoB,EAAGK,GACnB,OAAIL,IAAMK,EACK,IAANL,GAAW,EAAIA,GAAM,EAAIK,EAEzBL,GAAMA,GAAKK,GAAMA,EA6DhBsN,CAASD,EAAUR,IAGrBC,EAA8C,mBAAzBhB,EAAsCA,EAAqBuB,EAAUR,GAAYtB,EAQlF,KAFpBuB,GAAe,IAGbzI,KAAKiI,QAAQM,IAAIQ,EAAU7O,MAAOuO,IAXpCA,EAAc,IAiBpBE,EAAOO,OAAS,WACd,OAAOlJ,KAAKvC,MAAM0L,UAGbrB,EA/CmB,CAgD1BsB,aAEFtB,EAASuB,oBAAqB3B,EAAwB,IAA0BE,GAAerI,EAAUf,OAAOJ,WAAYsJ,GAE5H,IAAI4B,EAAwB,SAAUC,GAGpC,SAASD,IACP,IAAIE,EAiBJ,OAfAA,EAASD,EAAYxJ,MAAMC,KAAML,YAAcK,MACxCmB,MAAQ,CACbjH,MAAOsP,EAAOC,YAGhBD,EAAOE,SAAW,SAAUlB,EAAUC,GAGC,KAFI,EAAtBe,EAAOG,cAENlB,IAClBe,EAAO3D,SAAS,CACd3L,MAAOsP,EAAOC,cAKbD,EApBThQ,EAAe8P,EAAUC,GAuBzB,IAAIK,EAAUN,EAAS3P,UAkCvB,OAhCAiQ,EAAQd,0BAA4B,SAAmCC,GACrE,IAAIY,EAAeZ,EAAUY,aAC7B3J,KAAK2J,aAAeA,MAAAA,EAAsDzC,EAAwByC,GAGpGC,EAAQC,kBAAoB,WACtB7J,KAAK8J,QAAQlC,IACf5H,KAAK8J,QAAQlC,GAAaO,GAAGnI,KAAK0J,UAGpC,IAAIC,EAAe3J,KAAKvC,MAAMkM,aAC9B3J,KAAK2J,aAAeA,MAAAA,EAAsDzC,EAAwByC,GAGpGC,EAAQG,qBAAuB,WACzB/J,KAAK8J,QAAQlC,IACf5H,KAAK8J,QAAQlC,GAAaS,IAAIrI,KAAK0J,WAIvCE,EAAQH,SAAW,WACjB,OAAIzJ,KAAK8J,QAAQlC,GACR5H,KAAK8J,QAAQlC,GAAaU,MAE1Bd,GAIXoC,EAAQV,OAAS,WACf,OApHN,SAAmBC,GACjB,OAAOrG,MAAMC,QAAQoG,GAAYA,EAAS,GAAKA,EAmHpCa,CAAUhK,KAAKvC,MAAM0L,SAArBa,CAA+BhK,KAAKmB,MAAMjH,QAG5CoP,EA1DmB,CA2D1BF,aAGF,OADAE,EAASW,eAAgBtC,EAAwB,IAA0BC,GAAerI,EAAUf,OAAQmJ,GACrG,CACLG,SAAUA,EACVwB,SAAUA,ICvKRY,ECCqB,SAAAlM,OACnB8L,EAAUvC,WAChBuC,EAAQK,YAAcnM,EAEf8L,EDL4BM,CAAmB,kBEQlDN,EAPqB,SAAA9L,OACnB8L,EAAUvC,WAChBuC,EAAQK,YAAcnM,EAEf8L,GAGwC,UCA3CO,yBAKQ5M,8BACJA,UAED0D,MAAQ,CACXvD,SAAUH,EAAMsI,QAAQnI,YAQrB0M,YAAa,IACbC,iBAAmB,KAEnB9M,EAAM+M,kBACJC,SAAWhN,EAAMsI,QAAQkB,OAAO,SAAArJ,GAC/BoK,EAAKsC,aACFzE,SAAS,CAAEjI,SAAAA,MAEX2M,iBAAmB3M,gBAxBzB8M,iBAAP,SAAwBxK,SACf,CAAEe,KAAM,IAAK0J,IAAK,IAAKC,OAAQ,GAAIC,QAAsB,MAAb3K,+BA6BrD2J,kBAAA,gBACOS,YAAa,EAEdtK,KAAKuK,uBACF1E,SAAS,CAAEjI,SAAUoC,KAAKuK,sBAInCR,qBAAA,WACM/J,KAAKyK,UAAUzK,KAAKyK,cAG1BvB,OAAA,kBAEI5B,gBAACwD,EAAchD,UACb5N,MAAO,CACL6L,QAAS/F,KAAKvC,MAAMsI,QACpBnI,SAAUoC,KAAKmB,MAAMvD,SACrBmN,MAAOV,EAAOK,iBAAiB1K,KAAKmB,MAAMvD,SAASsC,UACnDsK,cAAexK,KAAKvC,MAAM+M,gBAG5BlD,gBAAC0D,EAAelD,UACdqB,SAAUnJ,KAAKvC,MAAM0L,UAAY,KACjCjP,MAAO8F,KAAKvC,MAAMsI,eAvDPuB,EAAM8B,WCArB6B,sJACJlF,QAAUmF,EAAclD,EAAKvK,mCAE7ByL,OAAA,kBACS5B,gBAAC+C,GAAOtE,QAAS/F,KAAK+F,QAASoD,SAAUnJ,KAAKvC,MAAM0L,eAJpC7B,EAAM8B,WCR3B+B,kGACJtB,kBAAA,WACM7J,KAAKvC,MAAM2N,SAASpL,KAAKvC,MAAM2N,QAAQjO,KAAK6C,KAAMA,SAGxDqL,mBAAA,SAAmBC,GACbtL,KAAKvC,MAAMiM,UAAU1J,KAAKvC,MAAMiM,SAASvM,KAAK6C,KAAMA,KAAMsL,MAGhEvB,qBAAA,WACM/J,KAAKvC,MAAM8N,WAAWvL,KAAKvC,MAAM8N,UAAUpO,KAAK6C,KAAMA,SAG5DkJ,OAAA,kBACS,SAda5B,EAAM8B,WC2G9B,WAAkBoC,EAAKC,GACrB,OAAOC,EAAiBC,EAAMH,EAAKC,IC9GrC,MAAiB3I,MAAMC,SAAW,SAAU6I,GAC1C,MAA8C,kBAAvChS,OAAOD,UAAUwM,SAAShJ,KAAKyO,MDIvBC,IACMF,IAEWD,IACFI,EAO5BC,EAAc,IAAIC,OAAO,CAG3B,UAOA,0GACAtP,KAAK,KAAM,KASb,SAASiP,EAAOH,EAAKC,GAQnB,IAPA,IAKIQ,EAmMgBC,EAxMhBC,EAAS,GACTrM,EAAM,EACNQ,EAAQ,EACRW,EAAO,GACPmL,EAAmBX,GAAWA,EAAQY,WAAa,IAGf,OAAhCJ,EAAMF,EAAYO,KAAKd,KAAe,CAC5C,IAAI1Q,EAAImR,EAAI,GACRM,EAAUN,EAAI,GACdO,EAASP,EAAI3L,MAKjB,GAJAW,GAAQuK,EAAI9E,MAAMpG,EAAOkM,GACzBlM,EAAQkM,EAAS1R,EAAE8E,OAGf2M,EACFtL,GAAQsL,EAAQ,OADlB,CAKA,IAAIE,EAAOjB,EAAIlL,GACXK,EAASsL,EAAI,GACbjO,EAAOiO,EAAI,GACXS,EAAUT,EAAI,GACdC,EAAQD,EAAI,GACZU,EAAWV,EAAI,GACfW,EAAWX,EAAI,GAGfhL,IACFkL,EAAO7G,KAAKrE,GACZA,EAAO,IAGT,IAAI4L,EAAoB,MAAVlM,GAA0B,MAAR8L,GAAgBA,IAAS9L,EACrDmM,EAAsB,MAAbH,GAAiC,MAAbA,EAC7BI,EAAwB,MAAbJ,GAAiC,MAAbA,EAC/BN,EAAYJ,EAAI,IAAMG,EACtBY,EAAUN,GAAWR,EAEzBC,EAAO7G,KAAK,CACVtH,KAAMA,GAAQ8B,IACda,OAAQA,GAAU,GAClB0L,UAAWA,EACXU,SAAUA,EACVD,OAAQA,EACRD,QAASA,EACTD,WAAYA,EACZI,QAASA,GAwJOd,EAxJec,EAyJ5Bd,EAAMtF,QAAQ,gBAAiB,SAzJSgG,EAAW,KAAO,KAAOK,EAAaZ,GAAa,SAclG,OATI/L,EAAQkL,EAAI5L,SACdqB,GAAQuK,EAAIjK,OAAOjB,IAIjBW,GACFkL,EAAO7G,KAAKrE,GAGPkL,EAoBT,SAASe,EAA0B1B,GACjC,OAAO2B,UAAU3B,GAAK5E,QAAQ,UAAW,SAAUtM,GACjD,MAAO,IAAMA,EAAE8S,WAAW,GAAGjH,SAAS,IAAIkH,gBAmB9C,SAAS3B,EAAkBS,GAKzB,IAHA,IAAImB,EAAU,IAAIxK,MAAMqJ,EAAOvM,QAGtBrD,EAAI,EAAGA,EAAI4P,EAAOvM,OAAQrD,IACR,iBAAd4P,EAAO5P,KAChB+Q,EAAQ/Q,GAAK,IAAIyP,OAAO,OAASG,EAAO5P,GAAGyQ,QAAU,OAIzD,OAAO,SAAUtM,EAAK6M,GAMpB,IALA,IAAItM,EAAO,GACPuM,EAAO9M,GAAO,GAEd+M,GADUF,GAAQ,IACDG,OAASR,EAA2BS,mBAEhDpR,EAAI,EAAGA,EAAI4P,EAAOvM,OAAQrD,IAAK,CACtC,IAAIqR,EAAQzB,EAAO5P,GAEnB,GAAqB,iBAAVqR,EAAX,CAMA,IACIC,EADA3T,EAAQsT,EAAKI,EAAM5P,MAGvB,GAAa,MAAT9D,EAAe,CACjB,GAAI0T,EAAMb,SAAU,CAEda,EAAMf,UACR5L,GAAQ2M,EAAMjN,QAGhB,SAEA,MAAM,IAAImN,UAAU,aAAeF,EAAM5P,KAAO,mBAIpD,GAAI+P,EAAQ7T,GAAZ,CACE,IAAK0T,EAAMd,OACT,MAAM,IAAIgB,UAAU,aAAeF,EAAM5P,KAAO,kCAAoCgQ,KAAKC,UAAU/T,GAAS,KAG9G,GAAqB,IAAjBA,EAAM0F,OAAc,CACtB,GAAIgO,EAAMb,SACR,SAEA,MAAM,IAAIe,UAAU,aAAeF,EAAM5P,KAAO,qBAIpD,IAAK,IAAIkQ,EAAI,EAAGA,EAAIhU,EAAM0F,OAAQsO,IAAK,CAGrC,GAFAL,EAAUJ,EAAOvT,EAAMgU,KAElBZ,EAAQ/Q,GAAG4R,KAAKN,GACnB,MAAM,IAAIC,UAAU,iBAAmBF,EAAM5P,KAAO,eAAiB4P,EAAMZ,QAAU,oBAAsBgB,KAAKC,UAAUJ,GAAW,KAGvI5M,IAAe,IAANiN,EAAUN,EAAMjN,OAASiN,EAAMvB,WAAawB,OApBzD,CA4BA,GAFAA,EAAUD,EAAMhB,SA5EbO,UA4EuCjT,GA5ExB0M,QAAQ,QAAS,SAAUtM,GAC/C,MAAO,IAAMA,EAAE8S,WAAW,GAAGjH,SAAS,IAAIkH,gBA2EWI,EAAOvT,IAErDoT,EAAQ/Q,GAAG4R,KAAKN,GACnB,MAAM,IAAIC,UAAU,aAAeF,EAAM5P,KAAO,eAAiB4P,EAAMZ,QAAU,oBAAsBa,EAAU,KAGnH5M,GAAQ2M,EAAMjN,OAASkN,QArDrB5M,GAAQ2M,EAwDZ,OAAO3M,GAUX,SAASgM,EAAczB,GACrB,OAAOA,EAAI5E,QAAQ,6BAA8B,QAoBnD,SAASwH,EAAYC,EAAItR,GAEvB,OADAsR,EAAGtR,KAAOA,EACHsR,EAST,SAASC,EAAO7C,GACd,OAAOA,EAAQ8C,UAAY,GAAK,IAwElC,SAASzC,EAAgBK,EAAQpP,EAAM0O,GAChCsC,EAAQhR,KACX0O,EAAkC1O,GAAQ0O,EAC1C1O,EAAO,IAUT,IALA,IAAIyR,GAFJ/C,EAAUA,GAAW,IAEA+C,OACjBC,GAAsB,IAAhBhD,EAAQgD,IACdC,EAAQ,GAGHnS,EAAI,EAAGA,EAAI4P,EAAOvM,OAAQrD,IAAK,CACtC,IAAIqR,EAAQzB,EAAO5P,GAEnB,GAAqB,iBAAVqR,EACTc,GAASzB,EAAaW,OACjB,CACL,IAAIjN,EAASsM,EAAaW,EAAMjN,QAC5B+L,EAAU,MAAQkB,EAAMZ,QAAU,IAEtCjQ,EAAKuI,KAAKsI,GAENA,EAAMd,SACRJ,GAAW,MAAQ/L,EAAS+L,EAAU,MAaxCgC,GANIhC,EAJAkB,EAAMb,SACHa,EAAMf,QAGClM,EAAS,IAAM+L,EAAU,KAFzB,MAAQ/L,EAAS,IAAM+L,EAAU,MAKnC/L,EAAS,IAAM+L,EAAU,KAOzC,IAAIL,EAAYY,EAAaxB,EAAQY,WAAa,KAC9CsC,EAAoBD,EAAMhI,OAAO2F,EAAUzM,UAAYyM,EAkB3D,OAZKmC,IACHE,GAASC,EAAoBD,EAAMhI,MAAM,GAAI2F,EAAUzM,QAAU8O,GAAS,MAAQrC,EAAY,WAI9FqC,GADED,EACO,IAIAD,GAAUG,EAAoB,GAAK,MAAQtC,EAAY,MAG3D+B,EAAW,IAAIpC,OAAO,IAAM0C,EAAOJ,EAAM7C,IAAW1O,GAe7D,SAAS8O,EAAc5K,EAAMlE,EAAM0O,GAQjC,OAPKsC,EAAQhR,KACX0O,EAAkC1O,GAAQ0O,EAC1C1O,EAAO,IAGT0O,EAAUA,GAAW,GAEjBxK,aAAgB+K,OAlJtB,SAAyB/K,EAAMlE,GAE7B,IAAI6R,EAAS3N,EAAKpB,OAAOkL,MAAM,aAE/B,GAAI6D,EACF,IAAK,IAAIrS,EAAI,EAAGA,EAAIqS,EAAOhP,OAAQrD,IACjCQ,EAAKuI,KAAK,CACRtH,KAAMzB,EACNoE,OAAQ,KACR0L,UAAW,KACXU,UAAU,EACVD,QAAQ,EACRD,SAAS,EACTD,UAAU,EACVI,QAAS,OAKf,OAAOoB,EAAWnN,EAAMlE,GAgIf8R,CAAe5N,KAGpB8M,EAAQ9M,GAxHd,SAAwBA,EAAMlE,EAAM0O,GAGlC,IAFA,IAAIqD,EAAQ,GAEHvS,EAAI,EAAGA,EAAI0E,EAAKrB,OAAQrD,IAC/BuS,EAAMxJ,KAAKuG,EAAa5K,EAAK1E,GAAIQ,EAAM0O,GAAS5L,QAKlD,OAAOuO,EAFM,IAAIpC,OAAO,MAAQ8C,EAAMpS,KAAK,KAAO,IAAK4R,EAAM7C,IAEnC1O,GAgHjBgS,KAA0EtD,GArGrF,SAAyBxK,EAAMlE,EAAM0O,GACnC,OAAOK,EAAeH,EAAM1K,EAAMwK,GAAU1O,EAAM0O,GAuG3CuD,KAA2EvD,iEEtapF,IAAMwD,EAAQ,GACRC,EAAa,IACfC,EAAa,EAkBjB,SAASC,EAAanO,EAAY2J,mBAAZ3J,IAAAA,EAAO,cAAK2J,IAAAA,EAAS,IACzB,MAAT3J,EAAeA,EAjBxB,SAAqBA,MACfgO,EAAMhO,GAAO,OAAOgO,EAAMhO,OAExBoO,EAAYxD,EAAayD,QAAQrO,UAEnCkO,EAAaD,IACfD,EAAMhO,GAAQoO,EACdF,KAGKE,EAOsBE,CAAYtO,EAAZsO,CAAkB3E,EAAQ,CAAE8C,QAAQ,ICrBnE,IAAMuB,GAAQ,GACRC,GAAa,IACfC,GAAa,EAuBjB,SAASK,GAAUtP,EAAUuL,YAAAA,IAAAA,EAAU,IACd,iBAAZA,IAAwB3I,MAAMC,QAAQ0I,KAC/CA,EAAU,CAAExK,KAAMwK,UAG+CA,EAA3DxK,IAAAA,SAAM5B,MAAAA,oBAAemP,OAAAA,oBAAgBD,UAAAA,sBAE/B,GAAGnM,OAAOnB,GAEXwO,OAAO,SAACC,EAASzO,OACvBA,GAAiB,KAATA,EAAa,OAAO,QAC7ByO,EAAS,OAAOA,QAhCxB,SAAqBzO,EAAMwK,OACnBkE,KAAclE,EAAQgD,IAAMhD,EAAQ+C,OAAS/C,EAAQ8C,UACrDqB,EAAYX,GAAMU,KAAcV,GAAMU,GAAY,OAEpDC,EAAU3O,GAAO,OAAO2O,EAAU3O,OAEhClE,EAAO,GAEP2F,EAAS,CAAEmN,OADFhE,EAAa5K,EAAMlE,EAAM0O,GACf1O,KAAAA,UAErBoS,GAAaD,KACfU,EAAU3O,GAAQyB,EAClByM,MAGKzM,EAmBoB6M,CAAYtO,EAAM,CACzCwN,IAAKpP,EACLmP,OAAAA,EACAD,UAAAA,IAHMsB,IAAAA,OAAQ9S,IAAAA,KAKVgO,EAAQ8E,EAAOvD,KAAKpM,OAErB6K,EAAO,OAAO,SAEZJ,EAAkBI,KAAV+E,EAAU/E,WACnBF,EAAU3K,IAAayK,SAEzBtL,IAAUwL,EAAgB,KAEvB,CACL5J,KAAAA,EACA0J,IAAc,MAAT1J,GAAwB,KAAR0J,EAAa,IAAMA,EACxCE,QAAAA,EACAD,OAAQ7N,EAAK0S,OAAO,SAACM,EAAMjQ,EAAKQ,UAC9ByP,EAAKjQ,EAAI9B,MAAQ8R,EAAOxP,GACjByP,GACN,MAEJ,UClCCC,2FACJ9G,OAAA,6BAEI5B,gBAACwD,EAAcxB,cACZ,SAAAQ,GACWA,GAAVlJ,UAEMhD,EAAWoK,EAAKvK,MAAMG,UAAYkM,EAAQlM,SAO1CH,OAAaqM,GAASlM,SAAAA,EAAUmN,MANxB/C,EAAKvK,MAAMwS,cACrBjI,EAAKvK,MAAMwS,cACXjI,EAAKvK,MAAMwD,KACXuO,GAAU5R,EAASsC,SAAU8H,EAAKvK,OAClCqM,EAAQiB,UAI0B/C,EAAKvK,MAArC0L,IAAAA,SAAU+G,IAAAA,UAAWhH,IAAAA,cAIvBpG,MAAMC,QAAQoG,IAAiC,IAApBA,EAASvJ,SACtCuJ,EAAW,MAIX7B,gBAACwD,EAAchD,UAAS5N,MAAOuD,GAC5BA,EAAMsN,MACH5B,EACsB,mBAAbA,EAGHA,EAAS1L,GACX0L,EACF+G,EACA5I,EAAM5D,cAAcwM,EAAWzS,GAC/ByL,EACAA,EAAOzL,GACP,KACkB,mBAAb0L,EAGLA,EAAS1L,GACX,YA1CE6J,EAAM8B,WC7BX,SAAS+G,GAA8BtQ,EAAQuQ,GAC5D,GAAc,MAAVvQ,EAAgB,MAAO,GAC3B,IAEIC,EAAKvD,EAFLmD,EAAS,GACT2Q,EAAazW,OAAOmD,KAAK8C,GAG7B,IAAKtD,EAAI,EAAGA,EAAI8T,EAAWzQ,OAAQrD,IACjCuD,EAAMuQ,EAAW9T,GACY,GAAzB6T,EAAS9O,QAAQxB,KACrBJ,EAAOI,GAAOD,EAAOC,IAGvB,OAAOJ,ECJT,SAAS4Q,GAAgBrP,SACG,MAAnBA,EAAKd,OAAO,GAAac,EAAO,IAAMA,EAyB/C,SAASsP,GAAU3S,SACU,iBAAbA,EAAwBA,EAAWkD,EAAWlD,GAG9D,SAAS4S,YACA,WACL5P,OAIJ,SAAS6P,UAQHC,uJAQJC,WAAa,SAAA/S,UAAYoK,EAAK4I,WAAWhT,EAAU,WACnDiT,cAAgB,SAAAjT,UAAYoK,EAAK4I,WAAWhT,EAAU,cACtDkT,aAAe,kBAAML,MACrBM,YAAc,kBAAMN,wCAVpBG,WAAA,SAAWhT,EAAUoH,SACqBhF,KAAKvC,UAArCuT,SAAAA,aAAW,SAAIlH,QAAAA,aAAU,KACjCA,EAAQ9E,OAASA,EACjB8E,EAAQlM,SA5CZ,SAAqBoT,EAAUpT,UACxBoT,OAGApT,GACHsC,SAAUoQ,GAAgBU,GAAYpT,EAASsC,WAJ3BtC,EA2CDqT,CAAYD,EAAU9P,EAAetD,IACxDkM,EAAQa,IAAM4F,GAAUzG,EAAQlM,aAQlCsL,OAAA,iBACmElJ,KAAKvC,UAA9DuT,SAAAA,aAAW,SAAIlH,QAAAA,aAAU,SAAIlM,SAAAA,aAAW,MAAQsT,0CAElDnL,EAAU,CACdM,WAAY,SAAApF,UAAQqP,GAAgBU,EAAWT,GAAUtP,KACzD+D,OAAQ,MACRpH,SAlDN,SAAuBoT,EAAUpT,OAC1BoT,EAAU,OAAOpT,MAEhBuT,EAAOb,GAAgBU,UAEW,IAApCpT,EAASsC,SAASoB,QAAQ6P,GAAoBvT,OAG7CA,GACHsC,SAAUtC,EAASsC,SAASqB,OAAO4P,EAAKvR,UAyC5BwR,CAAcJ,EAAU9P,EAAetD,IACjD0H,KAAMtF,KAAK2Q,WACX/J,QAAS5G,KAAK6Q,cACdvK,GAAIkK,KACJ3J,OAAQ2J,KACR1J,UAAW0J,KACXvJ,OAAQjH,KAAK8Q,aACb9J,MAAOhH,KAAK+Q,oBAGPzJ,gBAAC+C,OAAW6G,GAAMnL,QAASA,EAASyE,cAAeV,SA7BnCxC,EAAM8B,WCzC3BiI,2FACJnI,OAAA,6BAEI5B,gBAACwD,EAAcxB,cACZ,SAAAQ,GACWA,GAAVlJ,UAII/B,EAASkM,EAFPnN,EAAWoK,EAAKvK,MAAMG,UAAYkM,EAAQlM,gBAQhD0J,EAAMgK,SAASzU,QAAQmL,EAAKvK,MAAM0L,SAAU,SAAAoI,MAC7B,MAATxG,GAAiBzD,EAAMkK,eAAeD,GAAQ,KAG1CtQ,GAFNpC,EAAU0S,GAES9T,MAAMwD,MAAQsQ,EAAM9T,MAAMqE,KAE7CiJ,EAAQ9J,EACJuO,GAAU5R,EAASsC,cAAeqR,EAAM9T,OAAOwD,KAAAA,KAC/C6I,EAAQiB,SAITA,EACHzD,EAAMmK,aAAa5S,EAAS,CAAEjB,SAAAA,EAAUqS,cAAelF,IACvD,WA7BOzD,EAAM8B,WCJvBsI,GAAgB,CAChBrI,mBAAmB,EACnBsI,aAAa,EACb1H,cAAc,EACd2H,cAAc,EACdzH,aAAa,EACb0H,iBAAiB,EACjBC,0BAA0B,EAC1BC,0BAA0B,EAC1BC,QAAQ,EACRC,WAAW,EACXvW,MAAM,GAGNwW,GAAgB,CAChBlU,MAAM,EACN4B,QAAQ,EACRjG,WAAW,EACXwY,QAAQ,EACRC,QAAQ,EACRzS,WAAW,EACX0S,OAAO,GAWPC,GAAe,CACf7W,UAAY,EACZ8W,SAAS,EACTX,cAAc,EACdzH,aAAa,EACb8H,WAAW,EACXvW,MAAM,GAGN8W,GAAe,GAGnB,SAASC,GAAWvC,GAChB,OAAIwC,EAAQC,OAAOzC,GACRoC,GAEJE,GAAatC,EAAoB,WAAMwB,GANlDc,GAAaE,EAAQE,YAlBK,CACtBnX,UAAY,EACZyN,QAAQ,EACR0I,cAAc,EACdzH,aAAa,EACb8H,WAAW,GAsBf,IAAIjY,GAAiBJ,OAAOI,eACxBqC,GAAsBzC,OAAOyC,oBAC7BP,GAAwBlC,OAAOkC,sBAC/B+W,GAA2BjZ,OAAOiZ,yBAClCC,GAAiBlZ,OAAOkZ,eACxBC,GAAkBnZ,OAAOD,UAuC7B,OArCA,SAASqZ,EAAqBC,EAAiBC,EAAiBC,GAC5D,GAA+B,iBAApBD,EAiCX,OAAOD,EA9BH,GAAIF,GAAiB,CACjB,IAAIK,EAAqBN,GAAeI,GACpCE,GAAsBA,IAAuBL,IAC7CC,EAAqBC,EAAiBG,EAAoBD,GAIlE,IAAIpW,EAAOV,GAAoB6W,GAE3BpX,KACAiB,EAAOA,EAAKqF,OAAOtG,GAAsBoX,KAM7C,IAHA,IAAIG,EAAgBZ,GAAWQ,GAC3BK,EAAgBb,GAAWS,GAEtB3W,EAAI,EAAGA,EAAIQ,EAAK6C,SAAUrD,EAAG,CAClC,IAAIuD,EAAM/C,EAAKR,GACf,KAAK2V,GAAcpS,IAAUqT,GAAaA,EAAUrT,IAAWwT,GAAiBA,EAAcxT,IAAWuT,GAAiBA,EAAcvT,IAAO,CAC3I,IAAIyT,EAAaV,GAAyBK,EAAiBpT,GAC3D,IAEI9F,GAAeiZ,EAAiBnT,EAAKyT,GACvC,MAAO/Y,MAIjB,OAAOyY,GCzFf,IAAMO,GAAalM,EAAMkM,WAalB,SAASC,YAQPD,GAAWE,GAAS9V,mCClB7B,gBAAkB+V,IAAAA,YAASC,KAAAA,uBAEvBtM,gBAACwD,EAAcxB,cACZ,SAAAQ,MACWA,GAAVlJ,OAEKgT,GAAQ9J,EAAQU,cAAe,OAAO,SAErCqJ,EAAS/J,EAAQ/D,QAAQiB,aAG7BM,gBAAC6D,GACCC,QAAS,SAAA0I,GACPA,EAAKC,QAAUF,EAAOF,IAExBjK,SAAU,SAACoK,EAAMxI,GACXA,EAAUqI,UAAYA,IACxBG,EAAKC,UACLD,EAAKC,QAAUF,EAAOF,KAG1BpI,UAAW,SAAAuI,GACTA,EAAKC,WAEPJ,QAASA,kBCtBrB,gBAAoB1D,IAAAA,cAAepO,IAAAA,OAAIyD,KAAAA,uBAEnCgC,gBAACwD,EAAcxB,cACZ,SAAAQ,GACWA,GAAVlJ,UAEQmF,EAA2B+D,EAA3B/D,QAASyE,EAAkBV,EAAlBU,cAEXqJ,EAASvO,EAAOS,EAAQT,KAAOS,EAAQa,QACvChJ,EAAWsD,EACf+O,EACkB,iBAAPpO,EACLuN,EAAavN,EAAIoO,EAAcrF,aAE1B/I,GACH3B,SAAUkP,EAAavN,EAAG3B,SAAU+P,EAAcrF,UAEtD/I,UAKF2I,GACFqJ,EAAOjW,GACA,MAIP0J,gBAAC6D,GACCC,QAAS,WACPyI,EAAOjW,IAET8L,SAAU,SAACoK,EAAMxI,OACT0I,EAAe9S,EAAeoK,EAAUzJ,IAE3Ce,EAAkBoR,OACdpW,GACHkC,IAAKkU,EAAalU,QAGpB+T,EAAOjW,IAGXiE,GAAIA,iJF9CT,kBAQE2R,GAAWxI,iCAcb,eAQCD,EAAQyI,GAAWE,GAAS3I,aAC3BA,EAAQA,EAAMH,OAAS,oBAGzB,SAAuB3J,OAQtBrD,EAAW6V,KACX1I,EAAQyI,GAAWE,GAAS3I,aAE3B9J,EAAOuO,GAAU5R,EAASsC,SAAUe,GAAQ8J,gBG5CrD,SAAoB3B,GAER,SAAJ6K,EAAIxW,OACAyW,EAA2CzW,EAA3CyW,oBAAwBC,KAAmB1W,kCAGjD6J,gBAACwD,EAAcxB,cACZ,SAAAQ,UAEGA,GADFlJ,MAKE0G,gBAAC8B,OACK+K,EACArK,GACJsK,IAAKF,WAfX/J,iBAA4Bf,EAAUe,aAAef,EAAUpL,iBAuBrEiW,EAAE9J,YAAcA,EAChB8J,EAAEI,iBAAmBjL,EAYdkL,GAAaL,EAAG7K"} \ No newline at end of file diff --git a/node_modules/react-router/warnAboutDeprecatedCJSRequire.js b/node_modules/react-router/warnAboutDeprecatedCJSRequire.js new file mode 100644 index 0000000..0521dd3 --- /dev/null +++ b/node_modules/react-router/warnAboutDeprecatedCJSRequire.js @@ -0,0 +1,36 @@ +/* eslint-disable prefer-arrow-callback, no-empty */ +"use strict"; + +var printWarning = function() {}; + +if (process.env.NODE_ENV !== "production") { + printWarning = function(format, subs) { + var index = 0; + var message = + "Warning: " + + (subs.length > 0 + ? format.replace(/%s/g, function() { + return subs[index++]; + }) + : format); + + if (typeof console !== "undefined") { + console.error(message); + } + + try { + // --- Welcome to debugging React Router --- + // This error was thrown as a convenience so that you can use the + // stack trace to find the callsite that triggered this warning. + throw new Error(message); + } catch (e) {} + }; +} + +module.exports = function(member) { + printWarning( + 'Please use `require("react-router").%s` instead of `require("react-router/%s")`. ' + + "Support for the latter will be removed in the next major release.", + [member, member] + ); +}; diff --git a/node_modules/react-router/withRouter.js b/node_modules/react-router/withRouter.js new file mode 100644 index 0000000..214676a --- /dev/null +++ b/node_modules/react-router/withRouter.js @@ -0,0 +1,3 @@ +"use strict"; +require("./warnAboutDeprecatedCJSRequire")("withRouter"); +module.exports = require("./index.js").withRouter; diff --git a/node_modules/regenerator-runtime/LICENSE b/node_modules/regenerator-runtime/LICENSE new file mode 100644 index 0000000..cde61b6 --- /dev/null +++ b/node_modules/regenerator-runtime/LICENSE @@ -0,0 +1,21 @@ +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. diff --git a/node_modules/regenerator-runtime/README.md b/node_modules/regenerator-runtime/README.md new file mode 100644 index 0000000..e8702ba --- /dev/null +++ b/node_modules/regenerator-runtime/README.md @@ -0,0 +1,31 @@ +# regenerator-runtime + +Standalone runtime for +[Regenerator](https://github.com/facebook/regenerator)-compiled generator +and `async` functions. + +To import the runtime as a module (recommended), either of the following +import styles will work: +```js +// CommonJS +const regeneratorRuntime = require("regenerator-runtime"); + +// ECMAScript 2015 +import regeneratorRuntime from "regenerator-runtime"; +``` + +To ensure that `regeneratorRuntime` is defined globally, either of the +following styles will work: +```js +// CommonJS +require("regenerator-runtime/runtime"); + +// ECMAScript 2015 +import "regenerator-runtime/runtime.js"; +``` + +To get the absolute file system path of `runtime.js`, evaluate the +following expression: +```js +require("regenerator-runtime/path").path +``` diff --git a/node_modules/regenerator-runtime/package.json b/node_modules/regenerator-runtime/package.json new file mode 100644 index 0000000..1ad5d83 --- /dev/null +++ b/node_modules/regenerator-runtime/package.json @@ -0,0 +1,47 @@ +{ + "_from": "regenerator-runtime@^0.13.4", + "_id": "regenerator-runtime@0.13.7", + "_inBundle": false, + "_integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", + "_location": "/regenerator-runtime", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "regenerator-runtime@^0.13.4", + "name": "regenerator-runtime", + "escapedName": "regenerator-runtime", + "rawSpec": "^0.13.4", + "saveSpec": null, + "fetchSpec": "^0.13.4" + }, + "_requiredBy": [ + "/@babel/runtime" + ], + "_resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "_shasum": "cac2dacc8a1ea675feaabaeb8ae833898ae46f55", + "_spec": "regenerator-runtime@^0.13.4", + "_where": "G:\\_comp_\\odsc\\orig\\AllNotes\\node_modules\\@babel\\runtime", + "author": { + "name": "Ben Newman", + "email": "bn@cs.stanford.edu" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Runtime for Regenerator-compiled generator and async functions.", + "keywords": [ + "regenerator", + "runtime", + "generator", + "async" + ], + "license": "MIT", + "main": "runtime.js", + "name": "regenerator-runtime", + "repository": { + "type": "git", + "url": "https://github.com/facebook/regenerator/tree/master/packages/regenerator-runtime" + }, + "sideEffects": true, + "version": "0.13.7" +} diff --git a/node_modules/regenerator-runtime/path.js b/node_modules/regenerator-runtime/path.js new file mode 100644 index 0000000..ced878b --- /dev/null +++ b/node_modules/regenerator-runtime/path.js @@ -0,0 +1,11 @@ +/** + * Copyright (c) 2014-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +exports.path = require("path").join( + __dirname, + "runtime.js" +); diff --git a/node_modules/regenerator-runtime/runtime.js b/node_modules/regenerator-runtime/runtime.js new file mode 100644 index 0000000..547b8c6 --- /dev/null +++ b/node_modules/regenerator-runtime/runtime.js @@ -0,0 +1,748 @@ +/** + * Copyright (c) 2014-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +var runtime = (function (exports) { + "use strict"; + + var Op = Object.prototype; + var hasOwn = Op.hasOwnProperty; + var undefined; // More compressible than void 0. + var $Symbol = typeof Symbol === "function" ? Symbol : {}; + var iteratorSymbol = $Symbol.iterator || "@@iterator"; + var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; + var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; + + function define(obj, key, value) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + return obj[key]; + } + try { + // IE 8 has a broken Object.defineProperty that only works on DOM objects. + define({}, ""); + } catch (err) { + define = function(obj, key, value) { + return obj[key] = value; + }; + } + + function wrap(innerFn, outerFn, self, tryLocsList) { + // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator. + var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; + var generator = Object.create(protoGenerator.prototype); + var context = new Context(tryLocsList || []); + + // The ._invoke method unifies the implementations of the .next, + // .throw, and .return methods. + generator._invoke = makeInvokeMethod(innerFn, self, context); + + return generator; + } + exports.wrap = wrap; + + // Try/catch helper to minimize deoptimizations. Returns a completion + // record like context.tryEntries[i].completion. This interface could + // have been (and was previously) designed to take a closure to be + // invoked without arguments, but in all the cases we care about we + // already have an existing method we want to call, so there's no need + // to create a new function object. We can even get away with assuming + // the method takes exactly one argument, since that happens to be true + // in every case, so we don't have to touch the arguments object. The + // only additional allocation required is the completion record, which + // has a stable shape and so hopefully should be cheap to allocate. + function tryCatch(fn, obj, arg) { + try { + return { type: "normal", arg: fn.call(obj, arg) }; + } catch (err) { + return { type: "throw", arg: err }; + } + } + + var GenStateSuspendedStart = "suspendedStart"; + var GenStateSuspendedYield = "suspendedYield"; + var GenStateExecuting = "executing"; + var GenStateCompleted = "completed"; + + // Returning this object from the innerFn has the same effect as + // breaking out of the dispatch switch statement. + var ContinueSentinel = {}; + + // Dummy constructor functions that we use as the .constructor and + // .constructor.prototype properties for functions that return Generator + // objects. For full spec compliance, you may wish to configure your + // minifier not to mangle the names of these two functions. + function Generator() {} + function GeneratorFunction() {} + function GeneratorFunctionPrototype() {} + + // This is a polyfill for %IteratorPrototype% for environments that + // don't natively support it. + var IteratorPrototype = {}; + IteratorPrototype[iteratorSymbol] = function () { + return this; + }; + + var getProto = Object.getPrototypeOf; + var NativeIteratorPrototype = getProto && getProto(getProto(values([]))); + if (NativeIteratorPrototype && + NativeIteratorPrototype !== Op && + hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { + // This environment has a native %IteratorPrototype%; use it instead + // of the polyfill. + IteratorPrototype = NativeIteratorPrototype; + } + + var Gp = GeneratorFunctionPrototype.prototype = + Generator.prototype = Object.create(IteratorPrototype); + GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype; + GeneratorFunctionPrototype.constructor = GeneratorFunction; + GeneratorFunction.displayName = define( + GeneratorFunctionPrototype, + toStringTagSymbol, + "GeneratorFunction" + ); + + // Helper for defining the .next, .throw, and .return methods of the + // Iterator interface in terms of a single ._invoke method. + function defineIteratorMethods(prototype) { + ["next", "throw", "return"].forEach(function(method) { + define(prototype, method, function(arg) { + return this._invoke(method, arg); + }); + }); + } + + exports.isGeneratorFunction = function(genFun) { + var ctor = typeof genFun === "function" && genFun.constructor; + return ctor + ? ctor === GeneratorFunction || + // For the native GeneratorFunction constructor, the best we can + // do is to check its .name property. + (ctor.displayName || ctor.name) === "GeneratorFunction" + : false; + }; + + exports.mark = function(genFun) { + if (Object.setPrototypeOf) { + Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); + } else { + genFun.__proto__ = GeneratorFunctionPrototype; + define(genFun, toStringTagSymbol, "GeneratorFunction"); + } + genFun.prototype = Object.create(Gp); + return genFun; + }; + + // Within the body of any async function, `await x` is transformed to + // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test + // `hasOwn.call(value, "__await")` to determine if the yielded value is + // meant to be awaited. + exports.awrap = function(arg) { + return { __await: arg }; + }; + + function AsyncIterator(generator, PromiseImpl) { + function invoke(method, arg, resolve, reject) { + var record = tryCatch(generator[method], generator, arg); + if (record.type === "throw") { + reject(record.arg); + } else { + var result = record.arg; + var value = result.value; + if (value && + typeof value === "object" && + hasOwn.call(value, "__await")) { + return PromiseImpl.resolve(value.__await).then(function(value) { + invoke("next", value, resolve, reject); + }, function(err) { + invoke("throw", err, resolve, reject); + }); + } + + return PromiseImpl.resolve(value).then(function(unwrapped) { + // When a yielded Promise is resolved, its final value becomes + // the .value of the Promise<{value,done}> result for the + // current iteration. + result.value = unwrapped; + resolve(result); + }, function(error) { + // If a rejected Promise was yielded, throw the rejection back + // into the async generator function so it can be handled there. + return invoke("throw", error, resolve, reject); + }); + } + } + + var previousPromise; + + function enqueue(method, arg) { + function callInvokeWithMethodAndArg() { + return new PromiseImpl(function(resolve, reject) { + invoke(method, arg, resolve, reject); + }); + } + + return previousPromise = + // If enqueue has been called before, then we want to wait until + // all previous Promises have been resolved before calling invoke, + // so that results are always delivered in the correct order. If + // enqueue has not been called before, then it is important to + // call invoke immediately, without waiting on a callback to fire, + // so that the async generator function has the opportunity to do + // any necessary setup in a predictable way. This predictability + // is why the Promise constructor synchronously invokes its + // executor callback, and why async functions synchronously + // execute code before the first await. Since we implement simple + // async functions in terms of async generators, it is especially + // important to get this right, even though it requires care. + previousPromise ? previousPromise.then( + callInvokeWithMethodAndArg, + // Avoid propagating failures to Promises returned by later + // invocations of the iterator. + callInvokeWithMethodAndArg + ) : callInvokeWithMethodAndArg(); + } + + // Define the unified helper method that is used to implement .next, + // .throw, and .return (see defineIteratorMethods). + this._invoke = enqueue; + } + + defineIteratorMethods(AsyncIterator.prototype); + AsyncIterator.prototype[asyncIteratorSymbol] = function () { + return this; + }; + exports.AsyncIterator = AsyncIterator; + + // Note that simple async functions are implemented on top of + // AsyncIterator objects; they just return a Promise for the value of + // the final result produced by the iterator. + exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) { + if (PromiseImpl === void 0) PromiseImpl = Promise; + + var iter = new AsyncIterator( + wrap(innerFn, outerFn, self, tryLocsList), + PromiseImpl + ); + + return exports.isGeneratorFunction(outerFn) + ? iter // If outerFn is a generator, return the full iterator. + : iter.next().then(function(result) { + return result.done ? result.value : iter.next(); + }); + }; + + function makeInvokeMethod(innerFn, self, context) { + var state = GenStateSuspendedStart; + + return function invoke(method, arg) { + if (state === GenStateExecuting) { + throw new Error("Generator is already running"); + } + + if (state === GenStateCompleted) { + if (method === "throw") { + throw arg; + } + + // Be forgiving, per 25.3.3.3.3 of the spec: + // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume + return doneResult(); + } + + context.method = method; + context.arg = arg; + + while (true) { + var delegate = context.delegate; + if (delegate) { + var delegateResult = maybeInvokeDelegate(delegate, context); + if (delegateResult) { + if (delegateResult === ContinueSentinel) continue; + return delegateResult; + } + } + + if (context.method === "next") { + // Setting context._sent for legacy support of Babel's + // function.sent implementation. + context.sent = context._sent = context.arg; + + } else if (context.method === "throw") { + if (state === GenStateSuspendedStart) { + state = GenStateCompleted; + throw context.arg; + } + + context.dispatchException(context.arg); + + } else if (context.method === "return") { + context.abrupt("return", context.arg); + } + + state = GenStateExecuting; + + var record = tryCatch(innerFn, self, context); + if (record.type === "normal") { + // If an exception is thrown from innerFn, we leave state === + // GenStateExecuting and loop back for another invocation. + state = context.done + ? GenStateCompleted + : GenStateSuspendedYield; + + if (record.arg === ContinueSentinel) { + continue; + } + + return { + value: record.arg, + done: context.done + }; + + } else if (record.type === "throw") { + state = GenStateCompleted; + // Dispatch the exception by looping back around to the + // context.dispatchException(context.arg) call above. + context.method = "throw"; + context.arg = record.arg; + } + } + }; + } + + // Call delegate.iterator[context.method](context.arg) and handle the + // result, either by returning a { value, done } result from the + // delegate iterator, or by modifying context.method and context.arg, + // setting context.delegate to null, and returning the ContinueSentinel. + function maybeInvokeDelegate(delegate, context) { + var method = delegate.iterator[context.method]; + if (method === undefined) { + // A .throw or .return when the delegate iterator has no .throw + // method always terminates the yield* loop. + context.delegate = null; + + if (context.method === "throw") { + // Note: ["return"] must be used for ES3 parsing compatibility. + if (delegate.iterator["return"]) { + // If the delegate iterator has a return method, give it a + // chance to clean up. + context.method = "return"; + context.arg = undefined; + maybeInvokeDelegate(delegate, context); + + if (context.method === "throw") { + // If maybeInvokeDelegate(context) changed context.method from + // "return" to "throw", let that override the TypeError below. + return ContinueSentinel; + } + } + + context.method = "throw"; + context.arg = new TypeError( + "The iterator does not provide a 'throw' method"); + } + + return ContinueSentinel; + } + + var record = tryCatch(method, delegate.iterator, context.arg); + + if (record.type === "throw") { + context.method = "throw"; + context.arg = record.arg; + context.delegate = null; + return ContinueSentinel; + } + + var info = record.arg; + + if (! info) { + context.method = "throw"; + context.arg = new TypeError("iterator result is not an object"); + context.delegate = null; + return ContinueSentinel; + } + + if (info.done) { + // Assign the result of the finished delegate to the temporary + // variable specified by delegate.resultName (see delegateYield). + context[delegate.resultName] = info.value; + + // Resume execution at the desired location (see delegateYield). + context.next = delegate.nextLoc; + + // If context.method was "throw" but the delegate handled the + // exception, let the outer generator proceed normally. If + // context.method was "next", forget context.arg since it has been + // "consumed" by the delegate iterator. If context.method was + // "return", allow the original .return call to continue in the + // outer generator. + if (context.method !== "return") { + context.method = "next"; + context.arg = undefined; + } + + } else { + // Re-yield the result returned by the delegate method. + return info; + } + + // The delegate iterator is finished, so forget it and continue with + // the outer generator. + context.delegate = null; + return ContinueSentinel; + } + + // Define Generator.prototype.{next,throw,return} in terms of the + // unified ._invoke helper method. + defineIteratorMethods(Gp); + + define(Gp, toStringTagSymbol, "Generator"); + + // A Generator should always return itself as the iterator object when the + // @@iterator function is called on it. Some browsers' implementations of the + // iterator prototype chain incorrectly implement this, causing the Generator + // object to not be returned from this call. This ensures that doesn't happen. + // See https://github.com/facebook/regenerator/issues/274 for more details. + Gp[iteratorSymbol] = function() { + return this; + }; + + Gp.toString = function() { + return "[object Generator]"; + }; + + function pushTryEntry(locs) { + var entry = { tryLoc: locs[0] }; + + if (1 in locs) { + entry.catchLoc = locs[1]; + } + + if (2 in locs) { + entry.finallyLoc = locs[2]; + entry.afterLoc = locs[3]; + } + + this.tryEntries.push(entry); + } + + function resetTryEntry(entry) { + var record = entry.completion || {}; + record.type = "normal"; + delete record.arg; + entry.completion = record; + } + + function Context(tryLocsList) { + // The root entry object (effectively a try statement without a catch + // or a finally block) gives us a place to store values thrown from + // locations where there is no enclosing try statement. + this.tryEntries = [{ tryLoc: "root" }]; + tryLocsList.forEach(pushTryEntry, this); + this.reset(true); + } + + exports.keys = function(object) { + var keys = []; + for (var key in object) { + keys.push(key); + } + keys.reverse(); + + // Rather than returning an object with a next method, we keep + // things simple and return the next function itself. + return function next() { + while (keys.length) { + var key = keys.pop(); + if (key in object) { + next.value = key; + next.done = false; + return next; + } + } + + // To avoid creating an additional object, we just hang the .value + // and .done properties off the next function object itself. This + // also ensures that the minifier will not anonymize the function. + next.done = true; + return next; + }; + }; + + function values(iterable) { + if (iterable) { + var iteratorMethod = iterable[iteratorSymbol]; + if (iteratorMethod) { + return iteratorMethod.call(iterable); + } + + if (typeof iterable.next === "function") { + return iterable; + } + + if (!isNaN(iterable.length)) { + var i = -1, next = function next() { + while (++i < iterable.length) { + if (hasOwn.call(iterable, i)) { + next.value = iterable[i]; + next.done = false; + return next; + } + } + + next.value = undefined; + next.done = true; + + return next; + }; + + return next.next = next; + } + } + + // Return an iterator with no values. + return { next: doneResult }; + } + exports.values = values; + + function doneResult() { + return { value: undefined, done: true }; + } + + Context.prototype = { + constructor: Context, + + reset: function(skipTempReset) { + this.prev = 0; + this.next = 0; + // Resetting context._sent for legacy support of Babel's + // function.sent implementation. + this.sent = this._sent = undefined; + this.done = false; + this.delegate = null; + + this.method = "next"; + this.arg = undefined; + + this.tryEntries.forEach(resetTryEntry); + + if (!skipTempReset) { + for (var name in this) { + // Not sure about the optimal order of these conditions: + if (name.charAt(0) === "t" && + hasOwn.call(this, name) && + !isNaN(+name.slice(1))) { + this[name] = undefined; + } + } + } + }, + + stop: function() { + this.done = true; + + var rootEntry = this.tryEntries[0]; + var rootRecord = rootEntry.completion; + if (rootRecord.type === "throw") { + throw rootRecord.arg; + } + + return this.rval; + }, + + dispatchException: function(exception) { + if (this.done) { + throw exception; + } + + var context = this; + function handle(loc, caught) { + record.type = "throw"; + record.arg = exception; + context.next = loc; + + if (caught) { + // If the dispatched exception was caught by a catch block, + // then let that catch block handle the exception normally. + context.method = "next"; + context.arg = undefined; + } + + return !! caught; + } + + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + var record = entry.completion; + + if (entry.tryLoc === "root") { + // Exception thrown outside of any try block that could handle + // it, so set the completion value of the entire function to + // throw the exception. + return handle("end"); + } + + if (entry.tryLoc <= this.prev) { + var hasCatch = hasOwn.call(entry, "catchLoc"); + var hasFinally = hasOwn.call(entry, "finallyLoc"); + + if (hasCatch && hasFinally) { + if (this.prev < entry.catchLoc) { + return handle(entry.catchLoc, true); + } else if (this.prev < entry.finallyLoc) { + return handle(entry.finallyLoc); + } + + } else if (hasCatch) { + if (this.prev < entry.catchLoc) { + return handle(entry.catchLoc, true); + } + + } else if (hasFinally) { + if (this.prev < entry.finallyLoc) { + return handle(entry.finallyLoc); + } + + } else { + throw new Error("try statement without catch or finally"); + } + } + } + }, + + abrupt: function(type, arg) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc <= this.prev && + hasOwn.call(entry, "finallyLoc") && + this.prev < entry.finallyLoc) { + var finallyEntry = entry; + break; + } + } + + if (finallyEntry && + (type === "break" || + type === "continue") && + finallyEntry.tryLoc <= arg && + arg <= finallyEntry.finallyLoc) { + // Ignore the finally entry if control is not jumping to a + // location outside the try/catch block. + finallyEntry = null; + } + + var record = finallyEntry ? finallyEntry.completion : {}; + record.type = type; + record.arg = arg; + + if (finallyEntry) { + this.method = "next"; + this.next = finallyEntry.finallyLoc; + return ContinueSentinel; + } + + return this.complete(record); + }, + + complete: function(record, afterLoc) { + if (record.type === "throw") { + throw record.arg; + } + + if (record.type === "break" || + record.type === "continue") { + this.next = record.arg; + } else if (record.type === "return") { + this.rval = this.arg = record.arg; + this.method = "return"; + this.next = "end"; + } else if (record.type === "normal" && afterLoc) { + this.next = afterLoc; + } + + return ContinueSentinel; + }, + + finish: function(finallyLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.finallyLoc === finallyLoc) { + this.complete(entry.completion, entry.afterLoc); + resetTryEntry(entry); + return ContinueSentinel; + } + } + }, + + "catch": function(tryLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc === tryLoc) { + var record = entry.completion; + if (record.type === "throw") { + var thrown = record.arg; + resetTryEntry(entry); + } + return thrown; + } + } + + // The context.catch method must only be called with a location + // argument that corresponds to a known catch block. + throw new Error("illegal catch attempt"); + }, + + delegateYield: function(iterable, resultName, nextLoc) { + this.delegate = { + iterator: values(iterable), + resultName: resultName, + nextLoc: nextLoc + }; + + if (this.method === "next") { + // Deliberately forget the last sent value so that we don't + // accidentally pass it on to the delegate. + this.arg = undefined; + } + + return ContinueSentinel; + } + }; + + // Regardless of whether this script is executing as a CommonJS module + // or not, return the runtime object so that we can declare the variable + // regeneratorRuntime in the outer scope, which allows this module to be + // injected easily by `bin/regenerator --include-runtime script.js`. + return exports; + +}( + // If this script is executing as a CommonJS module, use module.exports + // as the regeneratorRuntime namespace. Otherwise create a new empty + // object. Either way, the resulting object will be used to initialize + // the regeneratorRuntime variable at the top of this file. + typeof module === "object" ? module.exports : {} +)); + +try { + regeneratorRuntime = runtime; +} catch (accidentalStrictMode) { + // This module should not be running in strict mode, so the above + // assignment should always work unless something is misconfigured. Just + // in case runtime.js accidentally runs in strict mode, we can escape + // strict mode using a global Function call. This could conceivably fail + // if a Content Security Policy forbids using Function, but in that case + // the proper solution is to fix the accidental strict mode problem. If + // you've misconfigured your bundler to force strict mode and applied a + // CSP to forbid Function, and you're not willing to fix either of those + // problems, please detail your unique predicament in a GitHub issue. + Function("r", "regeneratorRuntime = r")(runtime); +} diff --git a/node_modules/resolve-pathname/LICENSE b/node_modules/resolve-pathname/LICENSE new file mode 100644 index 0000000..54ff40f --- /dev/null +++ b/node_modules/resolve-pathname/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Michael Jackson 2016-2018 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/resolve-pathname/README.md b/node_modules/resolve-pathname/README.md new file mode 100644 index 0000000..72d57f3 --- /dev/null +++ b/node_modules/resolve-pathname/README.md @@ -0,0 +1,64 @@ +# resolve-pathname [![Travis][build-badge]][build] [![npm package][npm-badge]][npm] + +[build-badge]: https://img.shields.io/travis/mjackson/resolve-pathname/master.svg?style=flat-square +[build]: https://travis-ci.org/mjackson/resolve-pathname +[npm-badge]: https://img.shields.io/npm/v/resolve-pathname.svg?style=flat-square +[npm]: https://www.npmjs.org/package/resolve-pathname + +[resolve-pathname](https://www.npmjs.com/package/resolve-pathname) resolves URL pathnames identical to the way browsers resolve the pathname of an `` value. The goals are: + +- 100% compatibility with browser pathname resolution +- Pure JavaScript implementation (no DOM dependency) + +## Installation + +Using [npm](https://www.npmjs.com/): + + $ npm install --save resolve-pathname + +Then, use as you would anything else: + +```js +// using ES6 modules +import resolvePathname from 'resolve-pathname'; + +// using CommonJS modules +var resolvePathname = require('resolve-pathname'); +``` + +The UMD build is also available on [unpkg](https://unpkg.com): + +```html + +``` + +You can find the library on `window.resolvePathname`. + +## Usage + +```js +import resolvePathname from 'resolve-pathname'; + +// Simply pass the pathname you'd like to resolve. Second +// argument is the path we're coming from, or the current +// pathname. It defaults to "/". +resolvePathname('about', '/company/jobs'); // /company/about +resolvePathname('../jobs', '/company/team/ceo'); // /company/jobs +resolvePathname('about'); // /about +resolvePathname('/about'); // /about + +// Index paths (with a trailing slash) are also supported and +// work the same way as browsers. +resolvePathname('about', '/company/info/'); // /company/info/about + +// In browsers, it's easy to resolve a URL pathname relative to +// the current page. Just use window.location! e.g. if +// window.location.pathname == '/company/team/ceo' then +resolvePathname('cto', window.location.pathname); // /company/team/cto +resolvePathname('../jobs', window.location.pathname); // /company/jobs +``` + +## Prior Work + +- [url.resolve](https://nodejs.org/api/url.html#url_url_resolve_from_to) - node's `url.resolve` implementation for full URLs +- [resolve-url](https://www.npmjs.com/package/resolve-url) - A DOM-dependent implementation of the same algorithm diff --git a/node_modules/resolve-pathname/cjs/resolve-pathname.js b/node_modules/resolve-pathname/cjs/resolve-pathname.js new file mode 100644 index 0000000..5fda1c0 --- /dev/null +++ b/node_modules/resolve-pathname/cjs/resolve-pathname.js @@ -0,0 +1,77 @@ +'use strict'; + +function isAbsolute(pathname) { + return pathname.charAt(0) === '/'; +} + +// About 1.5x faster than the two-arg version of Array#splice() +function spliceOne(list, index) { + for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) { + list[i] = list[k]; + } + + list.pop(); +} + +// This implementation is based heavily on node's url.parse +function resolvePathname(to, from) { + if (from === undefined) from = ''; + + var toParts = (to && to.split('/')) || []; + var fromParts = (from && from.split('/')) || []; + + var isToAbs = to && isAbsolute(to); + var isFromAbs = from && isAbsolute(from); + var mustEndAbs = isToAbs || isFromAbs; + + if (to && isAbsolute(to)) { + // to is absolute + fromParts = toParts; + } else if (toParts.length) { + // to is relative, drop the filename + fromParts.pop(); + fromParts = fromParts.concat(toParts); + } + + if (!fromParts.length) return '/'; + + var hasTrailingSlash; + if (fromParts.length) { + var last = fromParts[fromParts.length - 1]; + hasTrailingSlash = last === '.' || last === '..' || last === ''; + } else { + hasTrailingSlash = false; + } + + var up = 0; + for (var i = fromParts.length; i >= 0; i--) { + var part = fromParts[i]; + + if (part === '.') { + spliceOne(fromParts, i); + } else if (part === '..') { + spliceOne(fromParts, i); + up++; + } else if (up) { + spliceOne(fromParts, i); + up--; + } + } + + if (!mustEndAbs) for (; up--; up) fromParts.unshift('..'); + + if ( + mustEndAbs && + fromParts[0] !== '' && + (!fromParts[0] || !isAbsolute(fromParts[0])) + ) + fromParts.unshift(''); + + var result = fromParts.join('/'); + + if (hasTrailingSlash && result.substr(-1) !== '/') result += '/'; + + return result; +} + +module.exports = resolvePathname; diff --git a/node_modules/resolve-pathname/cjs/resolve-pathname.min.js b/node_modules/resolve-pathname/cjs/resolve-pathname.min.js new file mode 100644 index 0000000..4419ee8 --- /dev/null +++ b/node_modules/resolve-pathname/cjs/resolve-pathname.min.js @@ -0,0 +1 @@ +"use strict";function isAbsolute(e){return"/"===e.charAt(0)}function spliceOne(e,t){for(var s=t,n=s+1,i=e.length;n= 0; i--) { + var part = fromParts[i]; + + if (part === '.') { + spliceOne(fromParts, i); + } else if (part === '..') { + spliceOne(fromParts, i); + up++; + } else if (up) { + spliceOne(fromParts, i); + up--; + } + } + + if (!mustEndAbs) for (; up--; up) fromParts.unshift('..'); + + if ( + mustEndAbs && + fromParts[0] !== '' && + (!fromParts[0] || !isAbsolute(fromParts[0])) + ) + fromParts.unshift(''); + + var result = fromParts.join('/'); + + if (hasTrailingSlash && result.substr(-1) !== '/') result += '/'; + + return result; +} + +export default resolvePathname; diff --git a/node_modules/resolve-pathname/index.js b/node_modules/resolve-pathname/index.js new file mode 100644 index 0000000..0c7b6b1 --- /dev/null +++ b/node_modules/resolve-pathname/index.js @@ -0,0 +1,7 @@ +'use strict'; + +if (process.env.NODE_ENV === 'production') { + module.exports = require('./cjs/resolve-pathname.min.js'); +} else { + module.exports = require('./cjs/resolve-pathname.js'); +} diff --git a/node_modules/resolve-pathname/package.json b/node_modules/resolve-pathname/package.json new file mode 100644 index 0000000..0785cf6 --- /dev/null +++ b/node_modules/resolve-pathname/package.json @@ -0,0 +1,71 @@ +{ + "_from": "resolve-pathname@^3.0.0", + "_id": "resolve-pathname@3.0.0", + "_inBundle": false, + "_integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==", + "_location": "/resolve-pathname", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "resolve-pathname@^3.0.0", + "name": "resolve-pathname", + "escapedName": "resolve-pathname", + "rawSpec": "^3.0.0", + "saveSpec": null, + "fetchSpec": "^3.0.0" + }, + "_requiredBy": [ + "/history" + ], + "_resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", + "_shasum": "99d02224d3cf263689becbb393bc560313025dcd", + "_spec": "resolve-pathname@^3.0.0", + "_where": "G:\\_comp_\\odsc\\orig\\AllNotes\\node_modules\\history", + "author": { + "name": "Michael Jackson" + }, + "bugs": { + "url": "https://github.com/mjackson/resolve-pathname/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Resolve URL pathnames using JavaScript", + "devDependencies": { + "@babel/core": "^7.1.6", + "@babel/preset-env": "^7.1.6", + "babel-core": "^7.0.0-bridge.0", + "babel-eslint": "^10.0.1", + "babel-jest": "^23.6.0", + "eslint": "^5.9.0", + "jest": "^23.6.0", + "rollup": "^0.67.3", + "rollup-plugin-replace": "^2.1.0", + "rollup-plugin-size-snapshot": "^0.7.0", + "rollup-plugin-uglify": "^6.0.0" + }, + "files": [ + "cjs", + "esm", + "index.js", + "umd" + ], + "homepage": "https://github.com/mjackson/resolve-pathname#readme", + "license": "MIT", + "main": "index.js", + "module": "esm/resolve-pathname.js", + "name": "resolve-pathname", + "repository": { + "type": "git", + "url": "git+https://github.com/mjackson/resolve-pathname.git" + }, + "scripts": { + "build": "rollup -c", + "clean": "git clean -fdX .", + "lint": "eslint modules", + "prepublishOnly": "npm run build", + "test": "jest" + }, + "unpkg": "umd/resolve-pathname.js", + "version": "3.0.0" +} diff --git a/node_modules/resolve-pathname/umd/resolve-pathname.js b/node_modules/resolve-pathname/umd/resolve-pathname.js new file mode 100644 index 0000000..29b9bfc --- /dev/null +++ b/node_modules/resolve-pathname/umd/resolve-pathname.js @@ -0,0 +1,83 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global.resolvePathname = factory()); +}(this, (function () { 'use strict'; + + function isAbsolute(pathname) { + return pathname.charAt(0) === '/'; + } + + // About 1.5x faster than the two-arg version of Array#splice() + function spliceOne(list, index) { + for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) { + list[i] = list[k]; + } + + list.pop(); + } + + // This implementation is based heavily on node's url.parse + function resolvePathname(to, from) { + if (from === undefined) from = ''; + + var toParts = (to && to.split('/')) || []; + var fromParts = (from && from.split('/')) || []; + + var isToAbs = to && isAbsolute(to); + var isFromAbs = from && isAbsolute(from); + var mustEndAbs = isToAbs || isFromAbs; + + if (to && isAbsolute(to)) { + // to is absolute + fromParts = toParts; + } else if (toParts.length) { + // to is relative, drop the filename + fromParts.pop(); + fromParts = fromParts.concat(toParts); + } + + if (!fromParts.length) return '/'; + + var hasTrailingSlash; + if (fromParts.length) { + var last = fromParts[fromParts.length - 1]; + hasTrailingSlash = last === '.' || last === '..' || last === ''; + } else { + hasTrailingSlash = false; + } + + var up = 0; + for (var i = fromParts.length; i >= 0; i--) { + var part = fromParts[i]; + + if (part === '.') { + spliceOne(fromParts, i); + } else if (part === '..') { + spliceOne(fromParts, i); + up++; + } else if (up) { + spliceOne(fromParts, i); + up--; + } + } + + if (!mustEndAbs) for (; up--; up) fromParts.unshift('..'); + + if ( + mustEndAbs && + fromParts[0] !== '' && + (!fromParts[0] || !isAbsolute(fromParts[0])) + ) + fromParts.unshift(''); + + var result = fromParts.join('/'); + + if (hasTrailingSlash && result.substr(-1) !== '/') result += '/'; + + return result; + } + + return resolvePathname; + +}))); diff --git a/node_modules/resolve-pathname/umd/resolve-pathname.min.js b/node_modules/resolve-pathname/umd/resolve-pathname.min.js new file mode 100644 index 0000000..312b862 --- /dev/null +++ b/node_modules/resolve-pathname/umd/resolve-pathname.min.js @@ -0,0 +1 @@ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.resolvePathname=e()}(this,function(){"use strict";function p(t){return"/"===t.charAt(0)}function d(t,e){for(var n=e,o=n+1,r=t.length;o void` + +- `condition` is required and can be anything +- `message` is an optional string + +## Installation + +```bash +# yarn +yarn add tiny-invariant + +# npm +npm add tiny-invariant --save +``` + +## Dropping your `message` for kb savings! + +Big idea: you will want your compiler to convert this code: + +```js +invariant(condition, 'My cool message that takes up a lot of kbs'); +``` + +Into this: + +```js +if (!condition) { + if ('production' !== process.env.NODE_ENV) { + invariant(false, 'My cool message that takes up a lot of kbs'); + } else { + invariant(false); + } +} +``` + +- **Babel**: recommend [`babel-plugin-dev-expression`](https://www.npmjs.com/package/babel-plugin-dev-expression) +- **TypeScript**: recommend [`tsdx`](https://github.com/jaredpalmer/tsdx#invariant) (or you can run `babel-plugin-dev-expression` after TypeScript compiling) + +Your bundler can then drop the code in the `"production" !== process.env.NODE_ENV` block for your production builds to end up with this: + +```js +if (!condition) { + invariant(false); +} +``` + +- rollup: use [rollup-plugin-replace](https://github.com/rollup/rollup-plugin-replace) and set `NODE_ENV` to `production` and then `rollup` will treeshake out the unused code +- Webpack: [instructions](https://webpack.js.org/guides/production/#specify-the-mode) + +## Builds + +- We have a `es` (EcmaScript module) build (because you _know_ you want to deduplicate this super heavy library) +- We have a `cjs` (CommonJS) build +- We have a `umd` (Universal module definition) build in case you needed it + +We expect `process.env.NODE_ENV` to be available at module compilation. We cache this value + +## That's it! + +🤘 diff --git a/node_modules/tiny-invariant/dist/tiny-invariant.cjs.js b/node_modules/tiny-invariant/dist/tiny-invariant.cjs.js new file mode 100644 index 0000000..bb046e7 --- /dev/null +++ b/node_modules/tiny-invariant/dist/tiny-invariant.cjs.js @@ -0,0 +1,15 @@ +'use strict'; + +Object.defineProperty(exports, "__esModule", { value: true }); +var isProduction = process.env.NODE_ENV === 'production'; +var prefix = 'Invariant failed'; +function invariant(condition, message) { + if (condition) { + return; + } + if (isProduction) { + throw new Error(prefix); + } + throw new Error(prefix + ": " + (message || '')); +} +exports.default = invariant; diff --git a/node_modules/tiny-invariant/dist/tiny-invariant.d.ts b/node_modules/tiny-invariant/dist/tiny-invariant.d.ts new file mode 100644 index 0000000..50e9e67 --- /dev/null +++ b/node_modules/tiny-invariant/dist/tiny-invariant.d.ts @@ -0,0 +1 @@ +export default function invariant(condition: any, message?: string): asserts condition; diff --git a/node_modules/tiny-invariant/dist/tiny-invariant.esm.js b/node_modules/tiny-invariant/dist/tiny-invariant.esm.js new file mode 100644 index 0000000..2f97700 --- /dev/null +++ b/node_modules/tiny-invariant/dist/tiny-invariant.esm.js @@ -0,0 +1,13 @@ +var isProduction = process.env.NODE_ENV === 'production'; +var prefix = 'Invariant failed'; +function invariant(condition, message) { + if (condition) { + return; + } + if (isProduction) { + throw new Error(prefix); + } + throw new Error(prefix + ": " + (message || '')); +} + +export default invariant; diff --git a/node_modules/tiny-invariant/dist/tiny-invariant.js b/node_modules/tiny-invariant/dist/tiny-invariant.js new file mode 100644 index 0000000..7c1108c --- /dev/null +++ b/node_modules/tiny-invariant/dist/tiny-invariant.js @@ -0,0 +1,20 @@ +(function (factory) { + typeof define === 'function' && define.amd ? define(factory) : + factory(); +}((function () { 'use strict'; + + Object.defineProperty(exports, "__esModule", { value: true }); + var isProduction = process.env.NODE_ENV === 'production'; + var prefix = 'Invariant failed'; + function invariant(condition, message) { + if (condition) { + return; + } + if (isProduction) { + throw new Error(prefix); + } + throw new Error(prefix + ": " + (message || '')); + } + exports.default = invariant; + +}))); diff --git a/node_modules/tiny-invariant/dist/tiny-invariant.min.js b/node_modules/tiny-invariant/dist/tiny-invariant.min.js new file mode 100644 index 0000000..10d5976 --- /dev/null +++ b/node_modules/tiny-invariant/dist/tiny-invariant.min.js @@ -0,0 +1 @@ +!function(e){"function"==typeof define&&define.amd?define(e):e()}((function(){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.default=function(e,n){if(!e)throw new Error("Invariant failed")}})); diff --git a/node_modules/tiny-invariant/package.json b/node_modules/tiny-invariant/package.json new file mode 100644 index 0000000..9f1190d --- /dev/null +++ b/node_modules/tiny-invariant/package.json @@ -0,0 +1,85 @@ +{ + "_from": "tiny-invariant@^1.0.2", + "_id": "tiny-invariant@1.1.0", + "_inBundle": false, + "_integrity": "sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw==", + "_location": "/tiny-invariant", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "tiny-invariant@^1.0.2", + "name": "tiny-invariant", + "escapedName": "tiny-invariant", + "rawSpec": "^1.0.2", + "saveSpec": null, + "fetchSpec": "^1.0.2" + }, + "_requiredBy": [ + "/history", + "/react-router", + "/react-router-dom" + ], + "_resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.1.0.tgz", + "_shasum": "634c5f8efdc27714b7f386c35e6760991d230875", + "_spec": "tiny-invariant@^1.0.2", + "_where": "G:\\_comp_\\odsc\\orig\\AllNotes\\node_modules\\react-router-dom", + "author": { + "name": "Alex Reardon", + "email": "alexreardon@gmail.com" + }, + "bugs": { + "url": "https://github.com/alexreardon/tiny-invariant/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "A tiny invariant function", + "devDependencies": { + "@rollup/plugin-replace": "^2.3.0", + "@rollup/plugin-typescript": "^3.0.0", + "@types/jest": "^25.1.0", + "jest": "^25.1.0", + "prettier": "^1.19.1", + "rimraf": "^3.0.1", + "rollup": "^1.30.1", + "rollup-plugin-terser": "^5.2.0", + "ts-expect": "^1.1.0", + "ts-jest": "^25.0.0", + "tslib": "^1.10.0", + "typescript": "^3.7.5" + }, + "files": [ + "/dist", + "/src" + ], + "homepage": "https://github.com/alexreardon/tiny-invariant#readme", + "keywords": [ + "invariant", + "error" + ], + "license": "MIT", + "main": "dist/tiny-invariant.cjs.js", + "module": "dist/tiny-invariant.esm.js", + "name": "tiny-invariant", + "repository": { + "type": "git", + "url": "git+https://github.com/alexreardon/tiny-invariant.git" + }, + "scripts": { + "build": "yarn build:clean && yarn build:dist && yarn build:typescript", + "build:clean": "rimraf dist", + "build:dist": "yarn rollup --config rollup.config.js", + "build:flow": "cp src/tiny-invariant.js.flow dist/tiny-invariant.cjs.js.flow", + "build:typescript": "tsc ./src/tiny-invariant.ts --emitDeclarationOnly --declaration --outDir ./dist", + "lint": "yarn prettier:check", + "prepublishOnly": "yarn build", + "prettier:check": "yarn prettier --write src/** test/**", + "prettier:write": "yarn prettier --debug-check src/** test/**", + "test": "yarn jest", + "typecheck": "yarn tsc --noEmit src/*.ts test/*.ts", + "validate": "yarn lint && yarn typecheck" + }, + "sideEffects": false, + "types": "dist/tiny-invariant.d.ts", + "version": "1.1.0" +} diff --git a/node_modules/tiny-invariant/src/tiny-invariant.flow.js b/node_modules/tiny-invariant/src/tiny-invariant.flow.js new file mode 100644 index 0000000..65fd117 --- /dev/null +++ b/node_modules/tiny-invariant/src/tiny-invariant.flow.js @@ -0,0 +1,12 @@ +// @flow +// This file is not actually executed +// It is just used by flow for typing + +const prefix: string = 'Invariant failed'; + +export default function invariant(condition: mixed, message?: string) { + if (condition) { + return; + } + throw new Error(`${prefix}: ${message || ''}`); +} diff --git a/node_modules/tiny-invariant/src/tiny-invariant.ts b/node_modules/tiny-invariant/src/tiny-invariant.ts new file mode 100644 index 0000000..ac3f092 --- /dev/null +++ b/node_modules/tiny-invariant/src/tiny-invariant.ts @@ -0,0 +1,25 @@ +// @flow +const isProduction: boolean = process.env.NODE_ENV === 'production'; +const prefix: string = 'Invariant failed'; + +// Throw an error if the condition fails +// Strip out error messages for production +// > Not providing an inline default argument for message as the result is smaller +export default function invariant( + condition: any, + message?: string, +): asserts condition { + if (condition) { + return; + } + // Condition not passed + + // In production we strip the message but still throw + if (isProduction) { + throw new Error(prefix); + } + + // When not in production we allow the message to pass through + // *This block will be removed in production builds* + throw new Error(`${prefix}: ${message || ''}`); +} diff --git a/node_modules/tiny-warning/LICENSE b/node_modules/tiny-warning/LICENSE new file mode 100644 index 0000000..f3dcb58 --- /dev/null +++ b/node_modules/tiny-warning/LICENSE @@ -0,0 +1,21 @@ +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. \ No newline at end of file diff --git a/node_modules/tiny-warning/README.md b/node_modules/tiny-warning/README.md new file mode 100644 index 0000000..da4793b --- /dev/null +++ b/node_modules/tiny-warning/README.md @@ -0,0 +1,68 @@ +# tiny-warning 🔬⚠️ + +[![Build Status](https://travis-ci.org/alexreardon/tiny-warning.svg?branch=master)](https://travis-ci.org/alexreardon/tiny-warning) +[![npm](https://img.shields.io/npm/v/tiny-warning.svg)](https://www.npmjs.com/package/tiny-warning) [![Downloads per month](https://img.shields.io/npm/dm/tiny-warning.svg)](https://www.npmjs.com/package/tiny-warning) [![dependencies](https://david-dm.org/alexreardon/tiny-warning.svg)](https://david-dm.org/alexreardon/tiny-warning) +[![min](https://img.shields.io/bundlephobia/min/tiny-warning.svg)](https://www.npmjs.com/package/tiny-warning) +[![minzip](https://img.shields.io/bundlephobia/minzip/tiny-warning.svg)](https://www.npmjs.com/package/tiny-warning) + +A tiny [`warning`](https://www.npmjs.com/package/warning) alternative. + +```js +import warning from 'tiny-warning'; + +warning(truthyValue, 'This should not log a warning'); + +warning(falsyValue, 'This should log a warning'); +// console.warn('Warning: This should log a warning'); +``` + +## API: `(condition: mixed, message: string) => void` + +- `condition` is required and can be anything +- `message` is an required string that will be passed onto `console.warn` + +## Why `tiny-warning`? + +The [`library: warning`](https://www.npmjs.com/package/warning) supports passing in arguments to the `warning` function in a sprintf style `(condition, format, a, b, c, d, e, f)`. It has internal logic to execute the sprintf substitutions. `tiny-warning` has dropped all of the sprintf logic. `tiny-warning` allows you to pass a single string message. With [template literals](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals) there is really no need for a custom message formatter to be built into the library. If you need a multi part message you can just do this: `warning(condition, 'Hello, ${name} - how are you today?')` + +## Dropping your `warning` for kb savings! + +We recommend using [`babel-plugin-dev-expression`](https://www.npmjs.com/package/babel-plugin-dev-expression) to remove `warning` calls from your production build. This saves you kb's as well as avoids logging warnings to the console for production. + +What it does it turn your code that looks like this: + +```js +warning(condition, 'My cool message that takes up a lot of kbs'); +``` + +Into this + +```js +if ('production' !== process.env.NODE_ENV) { + warning(condition, 'My cool message that takes up a lot of kbs'); +} +``` + +Your bundler can then drop the code in the `"production" !== process.env.NODE_ENV` block for your production builds + +Final result: + +```js +// nothing to see here! 👍 +``` + +> For `rollup` use [rollup-plugin-replace](https://github.com/rollup/rollup-plugin-replace) and set `NODE_ENV` to `production` and then `rollup` will treeshake out the unused code +> +> [`Webpack` instructions](https://webpack.js.org/guides/production/#specify-the-mode) + +## Builds + +- We have a `es` (EcmaScript module) build (because you _know_ you want to deduplicate this super heavy library) +- We have a `cjs` (CommonJS) build +- We have a `umd` (Universal module definition) build in case you needed it + +We expect `process.env.NODE_ENV` to be available at module compilation. We cache this value + +## That's it! + +🤘 diff --git a/node_modules/tiny-warning/dist/tiny-warning.cjs.js b/node_modules/tiny-warning/dist/tiny-warning.cjs.js new file mode 100644 index 0000000..221fdf5 --- /dev/null +++ b/node_modules/tiny-warning/dist/tiny-warning.cjs.js @@ -0,0 +1,22 @@ +'use strict'; + +var isProduction = process.env.NODE_ENV === 'production'; +function warning(condition, message) { + if (!isProduction) { + if (condition) { + return; + } + + var text = "Warning: " + message; + + if (typeof console !== 'undefined') { + console.warn(text); + } + + try { + throw Error(text); + } catch (x) {} + } +} + +module.exports = warning; diff --git a/node_modules/tiny-warning/dist/tiny-warning.cjs.js.flow b/node_modules/tiny-warning/dist/tiny-warning.cjs.js.flow new file mode 100644 index 0000000..6a6528b --- /dev/null +++ b/node_modules/tiny-warning/dist/tiny-warning.cjs.js.flow @@ -0,0 +1,3 @@ +// @flow + +export * from '../src'; diff --git a/node_modules/tiny-warning/dist/tiny-warning.esm.js b/node_modules/tiny-warning/dist/tiny-warning.esm.js new file mode 100644 index 0000000..2bf1f8c --- /dev/null +++ b/node_modules/tiny-warning/dist/tiny-warning.esm.js @@ -0,0 +1,20 @@ +var isProduction = process.env.NODE_ENV === 'production'; +function warning(condition, message) { + if (!isProduction) { + if (condition) { + return; + } + + var text = "Warning: " + message; + + if (typeof console !== 'undefined') { + console.warn(text); + } + + try { + throw Error(text); + } catch (x) {} + } +} + +export default warning; diff --git a/node_modules/tiny-warning/dist/tiny-warning.js b/node_modules/tiny-warning/dist/tiny-warning.js new file mode 100644 index 0000000..06a55fd --- /dev/null +++ b/node_modules/tiny-warning/dist/tiny-warning.js @@ -0,0 +1,27 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global = global || self, global.warning = factory()); +}(this, function () { 'use strict'; + + function warning(condition, message) { + { + if (condition) { + return; + } + + var text = "Warning: " + message; + + if (typeof console !== 'undefined') { + console.warn(text); + } + + try { + throw Error(text); + } catch (x) {} + } + } + + return warning; + +})); diff --git a/node_modules/tiny-warning/dist/tiny-warning.min.js b/node_modules/tiny-warning/dist/tiny-warning.min.js new file mode 100644 index 0000000..a03be32 --- /dev/null +++ b/node_modules/tiny-warning/dist/tiny-warning.min.js @@ -0,0 +1 @@ +!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(e=e||self).warning=n()}(this,function(){"use strict";return function(e,n){}}); diff --git a/node_modules/tiny-warning/package.json b/node_modules/tiny-warning/package.json new file mode 100644 index 0000000..ffb6075 --- /dev/null +++ b/node_modules/tiny-warning/package.json @@ -0,0 +1,85 @@ +{ + "_from": "tiny-warning@^1.0.0", + "_id": "tiny-warning@1.0.3", + "_inBundle": false, + "_integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==", + "_location": "/tiny-warning", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "tiny-warning@^1.0.0", + "name": "tiny-warning", + "escapedName": "tiny-warning", + "rawSpec": "^1.0.0", + "saveSpec": null, + "fetchSpec": "^1.0.0" + }, + "_requiredBy": [ + "/history", + "/mini-create-react-context", + "/react-router", + "/react-router-dom" + ], + "_resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", + "_shasum": "94a30db453df4c643d0fd566060d60a875d84754", + "_spec": "tiny-warning@^1.0.0", + "_where": "G:\\_comp_\\odsc\\orig\\AllNotes\\node_modules\\react-router-dom", + "author": { + "name": "Alex Reardon", + "email": "alexreardon@gmail.com" + }, + "bugs": { + "url": "https://github.com/alexreardon/tiny-warning/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "A tiny warning function", + "devDependencies": { + "@babel/core": "^7.5.0", + "@babel/preset-env": "^7.5.0", + "@babel/preset-flow": "^7.0.0", + "babel-core": "7.0.0-bridge.0", + "babel-jest": "^24.8.0", + "flow-bin": "0.102.0", + "jest": "^24.8.0", + "prettier": "1.18.2", + "regenerator-runtime": "^0.13.2", + "rimraf": "^2.6.3", + "rollup": "^1.16.6", + "rollup-plugin-babel": "^4.3.3", + "rollup-plugin-replace": "^2.2.0", + "rollup-plugin-uglify": "^6.0.2" + }, + "files": [ + "/dist", + "/src" + ], + "homepage": "https://github.com/alexreardon/tiny-warning#readme", + "keywords": [ + "warning", + "warn" + ], + "license": "MIT", + "main": "dist/tiny-warning.cjs.js", + "module": "dist/tiny-warning.esm.js", + "name": "tiny-warning", + "repository": { + "type": "git", + "url": "git+https://github.com/alexreardon/tiny-warning.git" + }, + "scripts": { + "build": "yarn build:clean && yarn build:dist && yarn build:flow", + "build:clean": "rimraf dist", + "build:dist": "yarn rollup --config rollup.config.js", + "build:flow": "echo \"// @flow\n\nexport * from '../src';\" > dist/tiny-warning.cjs.js.flow", + "lint": "yarn prettier --debug-check src/** test/**", + "prepublishOnly": "yarn build", + "test": "yarn jest", + "typecheck": "yarn flow", + "validate": "yarn lint && yarn flow" + }, + "sideEffects": false, + "types": "src/index.d.ts", + "version": "1.0.3" +} diff --git a/node_modules/tiny-warning/src/index.d.ts b/node_modules/tiny-warning/src/index.d.ts new file mode 100644 index 0000000..8897cbc --- /dev/null +++ b/node_modules/tiny-warning/src/index.d.ts @@ -0,0 +1 @@ +export default function warning(condition: any, message: string): void diff --git a/node_modules/tiny-warning/src/index.js b/node_modules/tiny-warning/src/index.js new file mode 100644 index 0000000..29a5bf1 --- /dev/null +++ b/node_modules/tiny-warning/src/index.js @@ -0,0 +1,30 @@ +// @flow +const isProduction: boolean = process.env.NODE_ENV === 'production'; + +export default function warning(condition: mixed, message: string): void { + // don't do anything in production + // wrapping in production check for better dead code elimination + if (!isProduction) { + // condition passed: do not log + if (condition) { + return; + } + + // Condition not passed + const text: string = `Warning: ${message}`; + + // check console for IE9 support which provides console + // only with open devtools + if (typeof console !== 'undefined') { + console.warn(text); + } + + // Throwing an error and catching it immediately + // to improve debugging + // A consumer can use 'pause on caught exceptions' + // https://github.com/facebook/react/issues/4216 + try { + throw Error(text); + } catch (x) {} + } +} diff --git a/node_modules/value-equal/LICENSE b/node_modules/value-equal/LICENSE new file mode 100644 index 0000000..54ff40f --- /dev/null +++ b/node_modules/value-equal/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Michael Jackson 2016-2018 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/value-equal/README.md b/node_modules/value-equal/README.md new file mode 100644 index 0000000..240d090 --- /dev/null +++ b/node_modules/value-equal/README.md @@ -0,0 +1,54 @@ +# value-equal [![Travis][build-badge]][build] [![npm package][npm-badge]][npm] + +[build-badge]: https://img.shields.io/travis/mjackson/value-equal/master.svg?style=flat-square +[build]: https://travis-ci.org/mjackson/value-equal +[npm-badge]: https://img.shields.io/npm/v/value-equal.svg?style=flat-square +[npm]: https://www.npmjs.org/package/value-equal + +[`value-equal`](https://www.npmjs.com/package/value-equal) determines if two JavaScript values are equal using [`Object.prototype.valueOf`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/valueOf). + +In many instances when I'm checking for object equality, what I really want to know is if their **values** are equal. This is good for: + +- Stuff you keep in `localStorage` +- `window.history.state` values +- Query strings + +## Installation + +Using [npm](https://www.npmjs.com/): + + $ npm install --save value-equal + +Then with a module bundler like [webpack](https://webpack.github.io/), use as you would anything else: + +```js +// using ES6 modules +import valueEqual from 'value-equal'; + +// using CommonJS modules +var valueEqual = require('value-equal'); +``` + +The UMD build is also available on [unpkg](https://unpkg.com): + +```html + +``` + +You can find the library on `window.valueEqual`. + +## Usage + +```js +valueEqual(1, 1); // true +valueEqual('asdf', 'asdf'); // true +valueEqual('asdf', new String('asdf')); // true +valueEqual(true, true); // true +valueEqual(true, false); // false +valueEqual({ a: 'a' }, { a: 'a' }); // true +valueEqual({ a: 'a' }, { a: 'b' }); // false +valueEqual([1, 2, 3], [1, 2, 3]); // true +valueEqual([1, 2, 3], [2, 3, 4]); // false +``` + +That's it. Enjoy! diff --git a/node_modules/value-equal/cjs/value-equal.js b/node_modules/value-equal/cjs/value-equal.js new file mode 100644 index 0000000..906d3f0 --- /dev/null +++ b/node_modules/value-equal/cjs/value-equal.js @@ -0,0 +1,38 @@ +'use strict'; + +function valueOf(obj) { + return obj.valueOf ? obj.valueOf() : Object.prototype.valueOf.call(obj); +} + +function valueEqual(a, b) { + // Test for strict equality first. + if (a === b) return true; + + // Otherwise, if either of them == null they are not equal. + if (a == null || b == null) return false; + + if (Array.isArray(a)) { + return ( + Array.isArray(b) && + a.length === b.length && + a.every(function(item, index) { + return valueEqual(item, b[index]); + }) + ); + } + + if (typeof a === 'object' || typeof b === 'object') { + var aValue = valueOf(a); + var bValue = valueOf(b); + + if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue); + + return Object.keys(Object.assign({}, a, b)).every(function(key) { + return valueEqual(a[key], b[key]); + }); + } + + return false; +} + +module.exports = valueEqual; diff --git a/node_modules/value-equal/cjs/value-equal.min.js b/node_modules/value-equal/cjs/value-equal.min.js new file mode 100644 index 0000000..d662942 --- /dev/null +++ b/node_modules/value-equal/cjs/value-equal.min.js @@ -0,0 +1 @@ +"use strict";function valueOf(e){return e.valueOf?e.valueOf():Object.prototype.valueOf.call(e)}function valueEqual(u,r){if(u===r)return!0;if(null==u||null==r)return!1;if(Array.isArray(u))return Array.isArray(r)&&u.length===r.length&&u.every(function(e,u){return valueEqual(e,r[u])});if("object"!=typeof u&&"object"!=typeof r)return!1;var e=valueOf(u),t=valueOf(r);return e!==u||t!==r?valueEqual(e,t):Object.keys(Object.assign({},u,r)).every(function(e){return valueEqual(u[e],r[e])})}module.exports=valueEqual; diff --git a/node_modules/value-equal/esm/value-equal.js b/node_modules/value-equal/esm/value-equal.js new file mode 100644 index 0000000..94d02c1 --- /dev/null +++ b/node_modules/value-equal/esm/value-equal.js @@ -0,0 +1,36 @@ +function valueOf(obj) { + return obj.valueOf ? obj.valueOf() : Object.prototype.valueOf.call(obj); +} + +function valueEqual(a, b) { + // Test for strict equality first. + if (a === b) return true; + + // Otherwise, if either of them == null they are not equal. + if (a == null || b == null) return false; + + if (Array.isArray(a)) { + return ( + Array.isArray(b) && + a.length === b.length && + a.every(function(item, index) { + return valueEqual(item, b[index]); + }) + ); + } + + if (typeof a === 'object' || typeof b === 'object') { + var aValue = valueOf(a); + var bValue = valueOf(b); + + if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue); + + return Object.keys(Object.assign({}, a, b)).every(function(key) { + return valueEqual(a[key], b[key]); + }); + } + + return false; +} + +export default valueEqual; diff --git a/node_modules/value-equal/index.js b/node_modules/value-equal/index.js new file mode 100644 index 0000000..3a5353e --- /dev/null +++ b/node_modules/value-equal/index.js @@ -0,0 +1,7 @@ +'use strict'; + +if (process.env.NODE_ENV === 'production') { + module.exports = require('./cjs/value-equal.min.js'); +} else { + module.exports = require('./cjs/value-equal.js'); +} diff --git a/node_modules/value-equal/package.json b/node_modules/value-equal/package.json new file mode 100644 index 0000000..2a8aaee --- /dev/null +++ b/node_modules/value-equal/package.json @@ -0,0 +1,71 @@ +{ + "_from": "value-equal@^1.0.1", + "_id": "value-equal@1.0.1", + "_inBundle": false, + "_integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==", + "_location": "/value-equal", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "value-equal@^1.0.1", + "name": "value-equal", + "escapedName": "value-equal", + "rawSpec": "^1.0.1", + "saveSpec": null, + "fetchSpec": "^1.0.1" + }, + "_requiredBy": [ + "/history" + ], + "_resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", + "_shasum": "1e0b794c734c5c0cade179c437d356d931a34d6c", + "_spec": "value-equal@^1.0.1", + "_where": "G:\\_comp_\\odsc\\orig\\AllNotes\\node_modules\\history", + "author": { + "name": "Michael Jackson" + }, + "bugs": { + "url": "https://github.com/mjackson/value-equal/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Are these two JavaScript values equal?", + "devDependencies": { + "@babel/core": "^7.1.6", + "@babel/preset-env": "^7.1.6", + "babel-core": "^7.0.0-bridge.0", + "babel-eslint": "^10.0.1", + "babel-jest": "^23.6.0", + "eslint": "^5.9.0", + "jest": "^23.6.0", + "rollup": "^0.67.3", + "rollup-plugin-replace": "^2.1.0", + "rollup-plugin-size-snapshot": "^0.7.0", + "rollup-plugin-uglify": "^6.0.0" + }, + "files": [ + "cjs", + "esm", + "index.js", + "umd" + ], + "homepage": "https://github.com/mjackson/value-equal#readme", + "license": "MIT", + "main": "index.js", + "module": "esm/value-equal.js", + "name": "value-equal", + "repository": { + "type": "git", + "url": "git+https://github.com/mjackson/value-equal.git" + }, + "scripts": { + "build": "rollup -c", + "clean": "git clean -fdX .", + "lint": "eslint modules", + "prepublishOnly": "npm run build", + "test": "jest" + }, + "unpkg": "umd/value-equal.js", + "version": "1.0.1" +} diff --git a/node_modules/value-equal/umd/value-equal.js b/node_modules/value-equal/umd/value-equal.js new file mode 100644 index 0000000..2d6ab7e --- /dev/null +++ b/node_modules/value-equal/umd/value-equal.js @@ -0,0 +1,44 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global.valueEqual = factory()); +}(this, (function () { 'use strict'; + + function valueOf(obj) { + return obj.valueOf ? obj.valueOf() : Object.prototype.valueOf.call(obj); + } + + function valueEqual(a, b) { + // Test for strict equality first. + if (a === b) return true; + + // Otherwise, if either of them == null they are not equal. + if (a == null || b == null) return false; + + if (Array.isArray(a)) { + return ( + Array.isArray(b) && + a.length === b.length && + a.every(function(item, index) { + return valueEqual(item, b[index]); + }) + ); + } + + if (typeof a === 'object' || typeof b === 'object') { + var aValue = valueOf(a); + var bValue = valueOf(b); + + if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue); + + return Object.keys(Object.assign({}, a, b)).every(function(key) { + return valueEqual(a[key], b[key]); + }); + } + + return false; + } + + return valueEqual; + +}))); diff --git a/node_modules/value-equal/umd/value-equal.min.js b/node_modules/value-equal/umd/value-equal.min.js new file mode 100644 index 0000000..5cd23e0 --- /dev/null +++ b/node_modules/value-equal/umd/value-equal.min.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.valueEqual=t()}(this,function(){"use strict";function f(e){return e.valueOf?e.valueOf():Object.prototype.valueOf.call(e)}return function n(t,r){if(t===r)return!0;if(null==t||null==r)return!1;if(Array.isArray(t))return Array.isArray(r)&&t.length===r.length&&t.every(function(e,t){return n(e,r[t])});if("object"!=typeof t&&"object"!=typeof r)return!1;var e=f(t),u=f(r);return e!==t||u!==r?n(e,u):Object.keys(Object.assign({},t,r)).every(function(e){return n(t[e],r[e])})}}); diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..df4bac8 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,146 @@ +{ + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@babel/runtime": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", + "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "history": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", + "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", + "requires": { + "@babel/runtime": "^7.1.2", + "loose-envify": "^1.2.0", + "resolve-pathname": "^3.0.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0", + "value-equal": "^1.0.1" + } + }, + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "requires": { + "react-is": "^16.7.0" + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "mini-create-react-context": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz", + "integrity": "sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ==", + "requires": { + "@babel/runtime": "^7.12.1", + "tiny-warning": "^1.0.3" + } + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "path-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "requires": { + "isarray": "0.0.1" + } + }, + "prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "react-router": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.2.0.tgz", + "integrity": "sha512-smz1DUuFHRKdcJC0jobGo8cVbhO3x50tCL4icacOlcwDOEQPq4TMqwx3sY1TP+DvtTgz4nm3thuo7A+BK2U0Dw==", + "requires": { + "@babel/runtime": "^7.1.2", + "history": "^4.9.0", + "hoist-non-react-statics": "^3.1.0", + "loose-envify": "^1.3.1", + "mini-create-react-context": "^0.4.0", + "path-to-regexp": "^1.7.0", + "prop-types": "^15.6.2", + "react-is": "^16.6.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + } + }, + "react-router-dom": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.2.0.tgz", + "integrity": "sha512-gxAmfylo2QUjcwxI63RhQ5G85Qqt4voZpUXSEqCwykV0baaOTQDR1f0PmY8AELqIyVc0NEZUj0Gov5lNGcXgsA==", + "requires": { + "@babel/runtime": "^7.1.2", + "history": "^4.9.0", + "loose-envify": "^1.3.1", + "prop-types": "^15.6.2", + "react-router": "5.2.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + } + }, + "regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" + }, + "resolve-pathname": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", + "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==" + }, + "tiny-invariant": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.1.0.tgz", + "integrity": "sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw==" + }, + "tiny-warning": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" + }, + "value-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", + "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" + } + } +} From 42bbef56e1d2be040cc4df83025422956d361ef0 Mon Sep 17 00:00:00 2001 From: copyNinja1219 Date: Sat, 20 Mar 2021 17:40:47 +0530 Subject: [PATCH 02/10] added files to .gitignore --- client/.eslintcache | 2 +- client/.gitignore | 1 + client/src/App.js | 47 ++++++++++++++++++++++++------- client/src/gif/splash-screen.gif | Bin 0 -> 1919728 bytes 4 files changed, 39 insertions(+), 11 deletions(-) create mode 100644 client/src/gif/splash-screen.gif diff --git a/client/.eslintcache b/client/.eslintcache index 81599e8..39c1ed4 100644 --- a/client/.eslintcache +++ b/client/.eslintcache @@ -1 +1 @@ -[{"G:\\_comp_\\odsc\\orig\\AllNotes\\client\\src\\index.js":"1","G:\\_comp_\\odsc\\orig\\AllNotes\\client\\src\\reportWebVitals.js":"2","G:\\_comp_\\odsc\\orig\\AllNotes\\client\\src\\App.js":"3","G:\\_comp_\\odsc\\orig\\AllNotes\\client\\src\\components\\error\\Error.js":"4","G:\\_comp_\\odsc\\orig\\AllNotes\\client\\src\\components\\home\\Home.js":"5","G:\\_comp_\\odsc\\orig\\AllNotes\\client\\src\\history.js":"6"},{"size":500,"mtime":1615902948521,"results":"7","hashOfConfig":"8"},{"size":362,"mtime":1615902948524,"results":"9","hashOfConfig":"8"},{"size":558,"mtime":1616058244813,"results":"10","hashOfConfig":"8"},{"size":495,"mtime":1616058444690,"results":"11","hashOfConfig":"8"},{"size":209,"mtime":1616057953339,"results":"12","hashOfConfig":"8"},{"size":99,"mtime":1616054087701,"results":"13","hashOfConfig":"8"},{"filePath":"14","messages":"15","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"16"},"eix1er",{"filePath":"17","messages":"18","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"16"},{"filePath":"19","messages":"20","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"21","messages":"22","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"23","messages":"24","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"16"},{"filePath":"25","messages":"26","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"G:\\_comp_\\odsc\\orig\\AllNotes\\client\\src\\index.js",[],["27","28"],"G:\\_comp_\\odsc\\orig\\AllNotes\\client\\src\\reportWebVitals.js",[],"G:\\_comp_\\odsc\\orig\\AllNotes\\client\\src\\App.js",["29","30"],"G:\\_comp_\\odsc\\orig\\AllNotes\\client\\src\\components\\error\\Error.js",[],"G:\\_comp_\\odsc\\orig\\AllNotes\\client\\src\\components\\home\\Home.js",[],"G:\\_comp_\\odsc\\orig\\AllNotes\\client\\src\\history.js",[],{"ruleId":"31","replacedBy":"32"},{"ruleId":"33","replacedBy":"34"},{"ruleId":"35","severity":1,"message":"36","line":1,"column":8,"nodeType":"37","messageId":"38","endLine":1,"endColumn":12},{"ruleId":"35","severity":1,"message":"39","line":9,"column":20,"nodeType":"37","messageId":"38","endLine":9,"endColumn":27},"no-native-reassign",["40"],"no-negated-in-lhs",["41"],"no-unused-vars","'logo' is defined but never used.","Identifier","unusedVar","'Routerr' is defined but never used.","no-global-assign","no-unsafe-negation"] \ No newline at end of file +[{"G:\\_comp_\\odsc\\orig\\AllNotes\\client\\src\\index.js":"1","G:\\_comp_\\odsc\\orig\\AllNotes\\client\\src\\reportWebVitals.js":"2","G:\\_comp_\\odsc\\orig\\AllNotes\\client\\src\\App.js":"3","G:\\_comp_\\odsc\\orig\\AllNotes\\client\\src\\components\\error\\Error.js":"4","G:\\_comp_\\odsc\\orig\\AllNotes\\client\\src\\components\\home\\Home.js":"5","G:\\_comp_\\odsc\\orig\\AllNotes\\client\\src\\history.js":"6"},{"size":500,"mtime":1615902948521,"results":"7","hashOfConfig":"8"},{"size":362,"mtime":1615902948524,"results":"9","hashOfConfig":"8"},{"size":1271,"mtime":1616062306431,"results":"10","hashOfConfig":"8"},{"size":495,"mtime":1616058444690,"results":"11","hashOfConfig":"8"},{"size":209,"mtime":1616057953339,"results":"12","hashOfConfig":"8"},{"size":99,"mtime":1616054087701,"results":"13","hashOfConfig":"8"},{"filePath":"14","messages":"15","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"16"},"eix1er",{"filePath":"17","messages":"18","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"16"},{"filePath":"19","messages":"20","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"21","messages":"22","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"16"},{"filePath":"23","messages":"24","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"16"},{"filePath":"25","messages":"26","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"16"},"G:\\_comp_\\odsc\\orig\\AllNotes\\client\\src\\index.js",[],["27","28"],"G:\\_comp_\\odsc\\orig\\AllNotes\\client\\src\\reportWebVitals.js",[],"G:\\_comp_\\odsc\\orig\\AllNotes\\client\\src\\App.js",["29","30"],"G:\\_comp_\\odsc\\orig\\AllNotes\\client\\src\\components\\error\\Error.js",[],"G:\\_comp_\\odsc\\orig\\AllNotes\\client\\src\\components\\home\\Home.js",[],"G:\\_comp_\\odsc\\orig\\AllNotes\\client\\src\\history.js",[],{"ruleId":"31","replacedBy":"32"},{"ruleId":"33","replacedBy":"34"},{"ruleId":"35","severity":1,"message":"36","line":1,"column":8,"nodeType":"37","messageId":"38","endLine":1,"endColumn":12},{"ruleId":"35","severity":1,"message":"39","line":9,"column":20,"nodeType":"37","messageId":"38","endLine":9,"endColumn":27},"no-native-reassign",["40"],"no-negated-in-lhs",["41"],"no-unused-vars","'logo' is defined but never used.","Identifier","unusedVar","'Routerr' is defined but never used.","no-global-assign","no-unsafe-negation"] \ No newline at end of file diff --git a/client/.gitignore b/client/.gitignore index 4d29575..46124d0 100644 --- a/client/.gitignore +++ b/client/.gitignore @@ -21,3 +21,4 @@ npm-debug.log* yarn-debug.log* yarn-error.log* +/node_modules \ No newline at end of file diff --git a/client/src/App.js b/client/src/App.js index 2ed6d0b..6be65e7 100644 --- a/client/src/App.js +++ b/client/src/App.js @@ -8,20 +8,47 @@ import { Switch, BrowserRouter as Routerr, } from 'react-router-dom'; +import { useState, useEffect } from 'react'; import Home from './components/home/Home'; +import screenGif from './gif/splash-screen.gif'; function App() { - return ( -
- - - - - - -
- ); + const [onLoading, changeLoading] = useState(true); + let content = Loading...; + + // let content = 'Loading...'; + + if (!onLoading) + content = ( +
+ + + + + + +
+ ); + + useEffect(() => { + changeLoading(false); + }, []); + + // let contentToShow = ( + //
+ // + // + // + // + // + // + //
+ // ); + + return content; + + // {onLoading ? { contentToShow } :
" loading"
} } export default App; diff --git a/client/src/gif/splash-screen.gif b/client/src/gif/splash-screen.gif new file mode 100644 index 0000000000000000000000000000000000000000..4643da48e984959e6f4a6216622f4b499117f9c8 GIT binary patch literal 1919728 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 z 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

f`H;hn# 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

Z@JrD@9Ihbm-}RDi)&bhLU*3~8)-^c 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%0Adw`8IU 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 z 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ºv6`^xpiQ*HGKGg?^J}}G>2k%o%}ag zYUyxLh?Q3teyfLNRVao2l$DJLlxK#Za0z)TsGCfQjnUYiZ%KotsBEPtcP|y1NtjJ1 z2yT1$Y)t8XFDerec%uxLcY>L5+UAvFNsrY@qgR)qt?8mj2WS1*eUNERU}=Z`Sfvs6 zSVkBDEPyJ_M}mKsRweOaEr*3`R-;f+U$selItS%YJ+xHUd)JrF!zzRYMf3uSF}oqiua16W??gtg2LyAnJSwQs-%%g zml61T#R;Jo)`HUrl0EmH_=lh4X?9c-0SMqL9O;AU%2@jst?>G6TA8lJHi8#Mo4pFH zhbftySef*uYqAD?!f0df8KDU)oSnLvSpMa8cL$$@wU6KARdN|* zwx_auH0mvJQ*Q(@z7xT$jYS+ht&>7z(Rp>!D&Lc6vHdZF!g07>_C1Q)ud!Ke`YRKr*CSu(#zeGlwEnN!^4xuDUN&Qf}!_)SO;vTM}?*7UD=6(b=q*5 zX17QSIH$UF@%B0qd#VKMi+}5_Hkr7V%ZiHleyyp8{mzPj&&YP*_G>wIJ-WcVsq*jhL9N}%(rqNCZo`Fm3btXFkQb3jxA07HdqZtSD@@PxmzvyH2FJuyx47sY9Y!bLlql^C0GYPEnSmSg_5pb2|%6#2nB8o4&hVQSpRg^Ie#n7Zo< zUeoulv^l{iYEC!EvO)2(gSolgd%7L9n&%3TQ^~7bTemwEd$IeFHfpX?7^x}QHQT7Z zJo;^;^Pd9|0mve#_oiXCdB)oYsd!eS7p1Og>cTE7h>$s_96YjG`DJcv5qi6S;t7Iz z7^vh(qI_zVL~NOmn00sf$K+LihclHne8GnU%bpvyPn)c(1CRqOS5Ug2$ZCWI%a&J+ zSIFzlvuMe>8NM_;z{umqfZTwI+HO8<#YtSgoXWp2sH5Imx58SWMl5L6%$q&>$>)BTU~`wT zRXB9?`)?5~z=+rtF_0{08pyRL$w7_2<1COK=CI>7qasYuf(Oox2(Eo9$z`RZZWqtY zW!%L@{Z|aVq+ESb{#90Wrns4StV-v|5vr;N?6ls<$OYWi zPBnuSJ<_8)+Npb%rum@1dC05E)qE<+ajDPFjIa_-pwS%GSNw?XmDozx$akvNocY#V zO1|qAo5B39uPfLYfe<FjIv&*Jab=lv2ddXaAKj^`&=bNZqjUnusOzpLA3tv@jiw+Cf?r6)UD$nWJ z(1Zr47D%cz$IqH9!ab_H*ELJz&cD!~IhL9d8s(>et?`?vhEahU_r`*`E8cEbNeam=^ z&|XQ@?CQdLIW_%)Ygldgl6R@Lck9yc7;sGd=F|$94^_x>Y^$}6wi+3dhrPkYXW98| zvAkWjH?ET(hm=pVgddpEFz$xvx5m_|oUFo9QmsHH4ri_gKMd;`nzj*1W&Mk*PIXSq=>j^%HE31o8$&VuUzHFV5W=z_V z`;_Jk(Ho66s>_(0=E+8Gq!pk7HRG?h*Kk;Urk{rC+jU;1iC;nLqhk*5DhB6mHp5of zh;{nyU5HG#{iLP)RYTDj=oP};+7JR=a3~hQ7(6hE$sjY>5jf`NZ8<&}*!K0CUBB{d_pv4~;i!(u^-8`n{EN2U-s(u+ zik$X{uDs^m-ZD+GmmA2Yc&0F)fC~7Qa31V7UF~9s)pQQ(Ln`>1dhV6an`zv2K1t^N zpU#mGy-}Sh=mQIUaR1Oe`|*m!#p3DhfurZlN z?c1O)!>0`B&2404YBa7+ecb$**qD5Jsl9Y~?2F#_08!w9K!Ohj7ARP7;6i~06DC~9 zP+~)f6$gsAL2=?nh!Qy(Joxe9#)uz5T1|zN0>EH4lRfiC_$ArVLmnL)MiwuE}tTe>98r&pe{@Ltjf~iN{tn-cIA07W5umu zElO=TQ)E$&7}JtvsZ=acxH-|rg-TPd+o@ssVugu#E5pSWktSVRH*#FTg#C{Ot@-sU zL9lk0a{kzKEJ>4G@h%mKc%o|48q-d_%NL|ruqOKgzWp<|)!lO?mwk!*t>vnXTSpAs zG4S2Sp=ay1+_y372cD_^c6%9e?&}4pb1e)#^yHSQZ^S-L`txecZnu8ttK59W2rvTN z$Dcocbcn3qW4>vy_X#D=;CnC zJbgnluTDQbv@A{|EiuYRfjd>h^DI+Sx>v`Oi%~$kj55gaC`~fC-K;87xd;T%uh{+C zBuuZjYy{FaD@_cwQ1;ez^|U^ZwDZqt)!GSJ9Y+-?R>)W#Ek;Kt+Z0?yU&PSU<)BK} zOfJd7Q`$F4#Zo(U`y*4=Lit@u+1@cXv~4Rv{_Y68$08P!codl}B|I(p^bZ_qi!$ zRk+IQg3C2rnI}b+W(CRh6KSAq3k#=xQ!aPtXT>}z-fc%S3QTQjuGeR}sy?aRR+TQ; zLOxGC*i#=D_4+u}`Ca@=hb^@o(O{Fl zd}|+xz7|gKK+nC=ke3v`?bZFH_b+GV<#=>wHO;bNyg>f3w&bN;p0eh1+gN#Ksm*j` zsgy0h)H=VfPT^_o&GC1oIRdzT-{*_``JwaupV!VvH$9|fO)u7qj=%=hq|^PzNYx7$ zxZJa}%neR~1k9V=1a`8IMUZjbftaDrCYaJBCU{YEU4$e+EWjCSSw|Atxh8kNpwTRB z6ROJ8K9?`{nlU=Ze9*()46_9_t-WzuU+l@+Ita$~w1q1A0t>bD zR7bsOsAx#!8@`-26eadBP^&o;7YVeXLpBI%h)k0tySPb`V6t0uycz2hxihQ%PjZV2 z;O&@Z$0c5mZ6g{V%VIgh(nN8T`u$Uz7P)q@tPsj^Dcn?1ezI1hYUBa&f+tbA zQ8_DlKn_|6IDOUdjJj;5Fnb3pF5)qGSP_^v$%ZhWFtci0q~qXjqdP#x=Q8*U50ds& zr4i)B3uQrV}AC zM66OlMMQ9U?SgD<;A<_FKALXlAc-BIlvrC?3>vk92#iWuZvSX3d_ z^PW>9T92&j*r?h|B7b?5Cs}&Zr%Kd{E}d@EAO*@G4t79gvmWz0MX=TxuD!)Y9!DSe zSIL3Qp?b=Z)MPtZTL!BFF(83k-&)b`O{$8RTO|N#SVWXH(z}8y-Nu~6qtzPrKdn__ z#+LTibK=&#RsCWpMZ;;y^^J&EK*g7UH%!Zyi7Q*qeH}Q}c(k*%)VhkRZ}LjH$8}y6 zs8LOk6umm&6b;O&|LrgH=892U#V>N$;wj4Z2%ao)(~P1#Ze*8yFZ)&*w2T_BGu0eD z%%)JZZXA<#Cl)Ht+Amf)`CbAwcVg|a5_=}2XFQQ>FAERz!xyELUXIw=uMX0;beo`z zBs5%+zB!=keW7H}Xjbts8E+>QNCi}&U~1}=RzVvc+5|V9Cku+inH=rX(iJxuUe}6% zRNSVESyZ!x={rj1HKmJJ=;tmBMP7qxunijB3!_!j&33fGtOaOHZ}~$s&gQ@tE7MpK zQAt1j5z=CCjBVJi`N5~e?=2DYNW0Y#*k>m2@lI@=CYqC3-XeBTk@vHXcKC5-UR)}_ zShxQ6F=6Bll3mkzoyQ1z*;JZoqLT{TNrJc4SR1#r31{wdXD*Bh&5o}p4ols}4!f#t zwv@qI<496!ziPdo%R%ZiJ+34N6d-k}(@VH_64&Io-1L9FO{<&A4R#H`(sJ9)=|D@A zkq6iI%ef6@rsMOBkJ=x!?ES)(@7jZ~Auohc=xKZ3^|xA%;gxm$ZoPu`>6<{v(rUd5B@@MrZ)DazkBWjL(f4AsYBJmMXa4=U zoHHy*>!lA^;ijmm!Y-%E16fJ$lj=jt}B78l#kIX_v2aGj0>+l?y1|)Xg6(K zTAKX1fgbrE8kO`8j5~DsN0A7yAm=*gIjp4{(z|rG!QCSKvu$7YV~4)Eq4l|gI7>^7 z?apAS%DQDmH|XwQP4}6tx^k5(u`Qaoft!)4r!T_(NynL!GU=|j%NZ)Gn6nC=t{WF= zDJ#|3I#St?f7+fhD=|Hzxc@^nklUPXinFvbtz42la+^Ms6C!N7GY5k=Y5OPF39o+P zvFvj=0rW4D>pugGy-_lxK3lzfQ9bYa9-Xx7oA67HDU&QlQX~HfA&Mw~2#|s2gT4yhtLvhHv#f{fvtk27yc@q1 zq&og;E+0`KGaR$?szff+I321MwDX;IgEb+Hx7@l!2x7n_>@875wLb%{)d@JUvoZnO zmqt=LrBb336fRl>KdSLMYlFmGu|kUDtByItNK3MikhBOB#SL36MLW21OFpziI)Aev z&S^u0ayV4noL(I-EyZM#(!W zv0%UhRIDkpri`Ms50pAWOu!o4Ay}-%WEn_dY^*7iu;`k<&bd0R;Jj@#$YCTVsv((t zyRz&cIPc-EpfU;(R7j7}#Lp5oue-;7gSH*JMFNyDEy6!Ky1c8Rvw_0Nf1}3{?2`^u zIpWZ~>!YeeY{i;8KP4Qxxgo90!@Z`QxpZ@`+X~6iLo!3ez+tIm4++6gm`eTgf`aJ}*I)0{yc+(wQOcLrL0T6BI;9;bSc> zytX3aG_dKi5DZ1^%DR&iNA0$~LQFC!<74+5EJjq&WO4LN%L65xl!dajb6ir8`Us`EfB|3`Bt%p4mId zW@F293qFG^r~qQHM)b*&`5N-PO9qR%^dv&{_(2UEK4&DT$!tm_63$OMo3;YX1=~3Q zJfHCiC;Jki*&M|#!6c}(A@w4y%mAoQ#1(P-J#|bCMC%{TL6)!tj>4(9wM5aR>nla{ zvo?Z5;rXyWYDm>9r7f(x&fFZZiLDb|roDpxOdkcu=<%x(nkeUN9KSd_*f}TNK{Llw zHXK`*9fe57{Ly1_uOsY}-}5(S%pDpL$_076syosSTFM~h5^ju0!z#$5tjT5MOU-rB26a#>q>8RGLp*IV%(Sf4>XbT76Ud~?U}RKQMUTqFM);6M#tS!d|2<+7$LDQsg(GU-*DZK-7Q zDdkMLVqIEEnL7T|tM6;Z%K2el~}ptxuw%b(}dd#6Psp*)Z}T>IK?MdE9;U)e3QJTh;w1?b(9|SFDFVbcTQ)h}MMcd)(#1~nG)k)6M{`^r z&LSS)a3xMj+H5q>*mb={MY!w>FobIz`HQ3!B`GRJ)S+Ws&0s?q%0J0fz1Ct{qP$+N zqsA5mMT64K#|4&gGry~D!f%#c5>sv}d(+iZy(n1C3TVLDw_ ze0=1jMXnSx#w_F4GL~3hyej_tNILe)S2Duf;;rfBVt@Tw{X5@{^tkWz!_3RzS4C3+ zQryXV<6|@0nCbpvD)t_QMYiW{+`e-{8)dZf1TCGM$nhG`tm;RF#4AS>;Ds3DW(~B< z*<+}UMC=7+*RfV;engCPWj$$EtIRYSD+@v{TJ|kv&ui#oJVzWtz?yYj1IACf!?%Fm zDHG)w@*Tu$g}0~e*yFk|fJ0#RgX*n5LxoWjl{V!s?njT~%<77=zN(PoV5+|xv9u#?dd#c383Z4N!!} zR8I8Q;4J6bc3V`8Y~*~jDFi9xrO_Ss7}^jW{iH8DQfg0;M!!N5F%0TnHbmJr#s9pM z`{Hdy((3^Iq8+8;=sZdMnJ45Mr*ZpRSb%l+p5oNfH2 z>0;Uu|7KOni?kt)@7=YhjJC=|N$muV%K@!itW6>2h3A5PR}5dyu&V51b>7%SX1a26szJV}b5`3O=UxJRuX$GIe0;g`83=c5?!b(3F?C}=zCLvJ)qEB< zk+aW*W8oy{SLqfS;5N#}d1|RmbE(4FY%H-prb8{W9Q38ZktDj)YH+p{Y0#W+%{pXs z)N5}n$m*Qd`4rafCS{DS*7=E7Dx)_?6x+PJtAa^Y-i~Q8Eu*9~%!?gxR+elFCT#aM zlt72$prG(-bHUxtV|q3BtQPNG?X5;`jQvo-zK_Yb-$7&(oPv44QPRd9d9QS{Q)u^Q2UVN#4 zc2sb`%_IJA$WGW5H{D7ta4$1$0yC=G(NYS=<1QI$B=y<+#dGwN+A4nL?z5F(HS;}9 zV*xbtgN{?6fvaX|+z-EV?yeZq5_elyXgMuYuyuDko?XsnNfz|7?lR_e z9i9>frS@ufFU)>Uf(31Wmq>aQb$vHo=q8F!?hNU9)OFSL0pw|UFA!NAE4()Kx6iiY z)=N3ZVO)DX^?b;O_8g8=$u8FRg>}QR?>WxE3Vw!hiuk*tz;;Oc{-6!M>EKSJ3&eTv zj`=*!_YEg!h);D(JNy~1dRW?@TLs7Jb@&#fT`@}ChE{t8mYuxna4+631=8CXg{1oX zUCRC5P()mH%}jIyVUYFtlxjo~*6an+EUH&1&qIP_Z<{|;%lvvI_5CD^_9&nF zY5MqO2H1_7QLQsSA$4RNS9EZub^ZxTvc5uK!^F2=`xk9;bhT}I3f(H6dy@@9h3{a7 z`||1rhyo7;5*%o-AVCo~9vozduwlX*0v#G;*svl*hz|=WMEEcx!j2m)f*d(0CmMmimeA&{V!k;{U!ptdgC_$Y4CxsS`*-~UsoI7VWy=d|y zR;EZXRxF^j>P?_kzxrG{lI7T)7aNwfX|yNUr!~JO1v!(h$F3O%(p@XnVbqLm>wcuD z*00{aiur1lTiEWxtc^FK)v8vqSHUC~Uwv?Q?_`@1%@XBI({b0pBa8YR%h+_*(SncC zB%K*{>Ajr4a#eacXjhk!DbrpZ)+uh;6q`=$5rag4=+dWCuWtQ1_1!Q(hb%r2xbNYi z;fmIrczkZ+R?Fjb`}XnTzr8lJe3dB&qbJ{UE_#hcwUR`Pxh5Q01$K8JQA}|M z8A@y|H=AsQDFqu<92MALecvf)8EtLVW*l!Lrv4|PZitO$8-ww|gdu>0J=j-V=XGb_ zS>mmR*K6|S#o~>%fr#UfImRViQ7!8CP+Q<(M3|6|-ACejMk;pMlw!Gd8j(oCw^@H# zIwVz$MLHN6dtmyfk%?GtWSWx6x#{6;$c4FPa!8`a;E6w}*3ym?G8HFk7rqDKf`KY} zVsb#CX&anl_GqD+=eZRmj3~wAD z*q`2BsbFB~796FCT?$IDo1HouVSS!z8E>@@|A+3!ClSn+ci_(HRG9hUIvcdXcFZ29 zDZkv_u+3J;vae8TJF|}`cbYJ02kJ~x(7bu6B5RL!{GiKTDmK+F<)4 zr&y%RR-nSFVT+xeyyULOUuTPu~)Tr@fvL` zuV<$DUuNe@8!Kxdk2^A~ITATD(6Ld~wAGJ)JNa=~I;$6% zcxbk`#8_`o1<1h!#->2A4Ub>p6QJ^CX4F7J`yjyW_QSu|+rOtP?Jc;mE zT7y{4cIT&({cnSkYSd{QV=>;%uzrn^8SQF#w9{eifdkx1>yQULo8{$)8(U$7az;3? zFbPdB^r7}Xcfnz?PKAR5A+tjCME^}tWa4v}B*wb|4Umj(G#!Fs zXei^UF=Cm^Py|T@K`i}-kVU{@&Jml3Fe|dHj!beK9T)c_BgU_h29(;8xFp6PelU;a zA|%%icd`8>Z9mm!j5F#O-`b|^_ya-j=~Zbm1u~JCPI0@u+T3nv zJ4R_zQ^EXRB1^bUUXjTwf21Y%R>;XCM&ym@;}#Fa>AbB4Qzt}=Tgd1Z9HR9QiWjuz zA>o%pd)_Rd60@Pv%vna#pz~Q$6yPn33C2wRMV`x>rpEN+x^vBrmF*ml%^bFr)Qu&h znbYCh(ikg4{Z3{mQB$HZGYGkglPq}##j4F5z12kxD|hNeQhE;WEd@uX`&k) z*I6faOWlNLpH%}EhGQAiW~sMT{W&kvt|{4tf)lG!RExc=SYis6teGH=BYwFjL`IfY zegn?0Wo0%;)e0q_e7qijpVXe%8dRR3JtY8zyC!-H(={n&FLDjaQEQbhscH&bgps^I zCR5ao4n`|x60@4a5*AaQX;B^9Yt;aY6r+&+?f7&W;F(zOay}-hS)YbJ=Ah)e;r(-T zXw_9gPVa7^+NAPmSg4w{kDBG&En_b$J{>H;GO6go!i`$`8Z*|&Qm?r$ z$=gHo7pJ=F66q}6QYL5i$8UC4Zs)f&&m(|hKb$qg?I4t%RX&USkp5`&-uI=sWH z7`hbh$OQMbe9cUE4FgMJY};|zZuW06t9<7zY1!Dy)hpJNEIbnfd$`-hupIXka~A!o zoSlZAnY)zh04WKN2+v>8lZrUqWm%Yyt=_*}nAuSg{Cx$EZgTa@v;6+7IVo69_oEyB zaIP2DwRL%-){WZh0*O41=Au-w0UjR%lN3I$#Pp!2t#;6*xU6Wq3xOKfv==j+wSo)w zeuqBb&a(O?SN%CJt-@-x2K`w3R_id4uJ5^r-F0g0bPCb!ZMxmY&lUf3%d@f*Wc&N5 zq0t)*gA2{sPWZ-U*1Vi%TS0*~EU&V~QSAF_M2q5Gz@_%^kss*6K?tdsm(EHIC%I18C9qSG&V7_j0(q zf3p{-G)pL^y%Kre(h<{1QJu1l+uATskF>_LZHdN>)cLdq#r+h=s4-7RJ=4kQn~XUf zj+qU>JdWj&kgfgL>Xi-3`5V;eTGhpj33(i!^c%@BUHe4QE8&ZCK*#B!UXSSoAgxrT zu%CRb+u`w`FFBiBUDyj^(AE{#ZGlb)Dj1@T8%05rVc6fY^%M>MTM%(d1EpWl0bouM z${XEP%tcSs@e{~h47Pkvn*3YB$(zGL9?Ff!8Zwluoz&&s6C5JbX6)Vhl~CKk4sfZQ zFYyg?kw~IMl@q#|{HaY9bse3Z+O?6~vsqVBso&ncVYF>UwcJH{ouR|gP9D;s6E~H?`2xfa38fALB@l-56or z?VG7kTn>VlplOugP18FGpAr7tiWQi?a0Q`d1_K7(!%$<51>(Hqp4e$3A2nhVz2IpX z-us9gUx~!TD{_jh?z#vqVCku^O+1iCehc;Aoye) zHU&)hOrn(S*#i+C)%eyJl|>`w9n2YI`9O|tg8Q(vCo@Q=hx7{6K8e`Ahn>~(5|1}!o znN1*CB4TA@oy4ZpDdqgRrLBe2WgeGTFkc}>jZhLNjQP>-9EOvLo(j&KUjQA;i4iff zSZ|%q+R;?51Pd}A4Mvia>~x-6ncI?(RXNh4JL(?oU1BaKSEp&DS3W=vw18SxTmy09 z0V?Jm-pxglBb#~LUz%gQq2C!1{*;2|jqTZ?<1tiX9U2UF4T1XAQ5DfT2@Xqw89Oc+ z-+YLO>`^G<36Q*_%u$hvJ?G1nWP)bVZK$T6Y#no64?)`G8_v{kt&AOh)Q^gr_5>(q zeqSuvR8Kx3+3ltyT3M;hNt1Bfd$m)L@S}SenmBbPQ68r3g;Bt%3FJlLg}U4jsn98= z9(pRG6n&vPy{5L6C+=-$BQXt%+~R-c+#1f^CsNveJtZ+7j4#9h=DqfBaR3WvLsorgR@Xtd74E9shJtZOE*U0-zgb&O`~T!xynWh<3fyqu{ zAD3!Mg$basJywc&O1mYf(E;H@5$WZIYZk|}#;Yvr_y3Bu;&8Ec0bNwQija~?@) zZr7;DDxB7v=qRdBhF??yV~<`Y!GfwAHW`!RALX4$j&_fUyjh%p<}xYZTb0^KX)0h& z7qmjB%FNwlJ^qbQrkY$0?dx$`j9S~+t<|nDQPxtdkoYXo2`HCn)6n=|pe7om&Z}9` zsgE5ei-J+ICJQUN>p7Vrnhk{MDXb2z*Eq9$D8q-(3BiNrqo>tw!Q1uEn+NM-kbvF|c(Smg_!M28HLy9pc5JEYz-5 zu4Y>iz8U|GAJ(c*HDM@D>MBHs9KE`R}zOXq-;p*ru$}-Ma&J^%s?6l@sTU}Vt z;;Pf??*w(Ms5a#lPT0BnP4V#UlKf=B<>zXG+KO7{$<9u_j!=kV-v`bxYkpYV5%3)D z*f8p1;_*s(@nwUCaoI}i0Me&j@~lI`?&=7b1qul~eiY|5tsr&lr9zpy!7bJmaitF9 z-@dB9Dxn@HpHfVm1urc2z%1`#S0!@UeIZ)XA)Jgx@`KtbC?^D7RhIx`#mR(PDIWfD zOxhg%wCd6(+>dJTSfOFD7N-~8-gO?5Dow6L%B^VPBGI1mV_hxcaj$Z2s8%xOMNCB% z^&8;@q9KRzv4*XgDeddNF$4E3d9e_^b?#NF=gaxAX;mwm0Hj=sV&RT5o{An$@swR= zo>Gb+IC{r5$0)|3puI9+G?rm~T9(6xYgS>a8s=*Xrm(aOZ*6((ERCl5bgR$!FjhiQ z1!uA|=H;aDu#r`)0>*D*j^gBo+$vM+$*S|jCfI>F%}Mh`zpj`ee_>2R9kC*6R(349 zGO;XgYeYY*f?V9-YTAdUa+d~mH42v-vLFNkEK+CJz#i}Yg7XQYFR=}%!2J~KjXGLA zS@KQ4El9^0PsXDWLuI`ZGY(ryaBi@V{ZVVeA05p|Raf&Lx^Y>rucGy;8?AMwZLTE0 zWH?7CfXZvz)}HA)sBd8D)#&n9Z%}C|<{(>8EBDTa+#pA5@`8?OlJY318lXTm@>JXL z()un=;`Jt@^I?Z}Y$E0q;Uic>@V{7XMVZ{RmW4=f@)#>L>2O$einY~6HAdf`P7A4! z=GOH>_P@CA0grERXX|KcDe+3`8h7=bM(_J3n6NG@I5Sp$Fby{5?yhv1s%ojI(c=Qo zVLXb^QJ0Yf>gp#KcR?8`2oH}wR;JOuA9RZjH-03KsJ0n{Xx)r`PG;L*XDT?M&W_0en-IANMR%3O(U10A8EnQDA{c6~A*N&Kn zwP7_DgGTp6*HBYg_XEP}LBcQp0yF&dv?YVsUXGz~<=SQZOyL;sZXz;Xi(DJ}rc&dd zs}2AKWccZwZm$S5R8J;g7rC&7=CC>TBd^B~|#Q`E!5VKf&Obwlgnx zM#jl<8}%x^7UM5>lR3XMZx{Fcc=%3_dz1sZyK-ZqN1Zrc7D();rf>RsC3;%ivsKgD zCEC`otJDU`Fy-bHsY{f0x~7#2UqsTTX9G>B^Lnk8F!r!f{yrS*(iA^Jcy48uI@X9f zi8g03HI##UU2{5@6Mcv$9VQYrOpdnfnfM>;{&0Wf`rK6fhi^H-jJ)YG-k$_eROV+Kl-0b_S8ae1Eb8kpL#w$epiT6#%p}Dvzn7NWssh!!1|tu0Wz{D^Dc2= zl4~F%hcrDI)x)zoCx;)Ia~zP_v#dg~OIc}vr|E}sZ(B2)9VbuiVQcLRV%^XB+1mG| zisfU!+NpJRFV{JmOTC~w|I9F5bm_Ovb3Me!YB5nwD_y8ipg%cM- zEO3z{Mv4|4b`;srBf*Um2aZ(fP@}?%Bn!4Y*zje{k_s8#6uGj1#+5ir2naBgXi=j_ zktS8Tlqpf33?+g*DY2tZsS~Y^)R_<=)`(p%w(R*eYSJ@xcpw{<1MrL2{wW0YX~_T}i= z?9|UNA>RaT@^9MAi`iEF8k=jz*?w&^t{ir5!kL^2`)s*e_hZ|Gi(4ixd->(Zt92Jf zJ(#p=y%b-|-5ESPSj5SBFaD>i8sy}=)x*2?%Xc%z;ok*QMR{B^{Mz8XZp^uNd~xSD zfBR^ypH@N-H{Spw@G$eFBQLeGARFm7v&2&{s^rZ3>A?L)I}1OKa=Wi1toT|irtUNo z@k5g$Xv)PGVT>_=>)OhRL(xhyY{a#sGH@)@wu4Z+wgwcjz`PLL5Wor<%SyTw?OUj{ z8lQYHE*g(Z61nkMdrGG$Yy9!V9hEx|$s>0JGD-K&{Bk}4J3R42;sPWQx*=7hP|Xg@ zV^S@tR8nioJ-rGoJ@Q6`&$Bz5Bnu}7$9zscFat$VOa8=U46pT+)G?^>!eN*>=H){KP}8jLS>s&)kk@S(oj~Td`r>URt1*W z>A0kl(M(Nzb3&cO%JxjFh7HlaQx%L=(vn84&$3pTOcc{!ag|cmS6h?N(ehS(phX$+ z%~wXjex(o2FjcK|Hy<&y)l`6IHPh2?=d9CRb%k|RFT40mwbV+FJXX);EOxLxT^Ekd zP9CGfvb8GHB97x(L00%Pm0FIIPuQGQuU+3j60}U$A}+L8a*+&>GB!<12~2QdD>Brw z`2FgoJdv)nL>EHwBCE{K{gj?Izwja>lww)G6MHP8EqppMPe9{T7 zSme$eb#-{8<-M?Hse!~^`uY!aDf98JFe#c={Nfip)WFYiM6(@Q$oH^Mtu0Oute4z^ zR-(9k?<&~)+rUb+KhH_9b{!)jc0x5h6Yk7`!FpTjn76CQeTZP_gQ3=N6+Y$lhDzHb z{T`*9)F*#2je0TTAKTpLtl-%NbvS$9lA4%06y_>oJ51frbOt_{ol1j!BgnmC7e+B2 zF-Z608_?7jL;9&He55jC)F4>IvTe_XMk*BG{#QbpJ&|tZ`9K;`1J(P~2SiO0Nk22Bo0FKhyA@`|Z?$Qf z5KmS}KSF1a%gc)uaf3_xSq)kq(~|0FM@aoeYm?#=p%op&E<951Pp~W@x9CNzR?2CJ z(fk`H7qy;>#f)^3#2B)kCBRH!{ClCqdRh=CXp8b-uqj&hdE-|A$@$?OgAewJimGcgCC*Yt3b{^ZT# zB!?M4g>Z}9{H7{B+AUt14Mie+<~mvG$gqKCgY3*BdxE1m07f){;hUWsqqMA!9jrh2 ziDbDY-Bcd~l-929 ztuEp+3}%3J%BdBsYBJFpM!iYOio!FR36mHiI~N$K-V;2~jA#zA*+9|N&S7u7>PnHg zIW^XlIgqtgmM&6(6(p3iucHxkf@s<5i8HV_ot#7=IXs;u@?XF5{a_1ss8fcyseOrL z?ICAs)x1{nw3)nBX;G`NRb}P2#I#xv7pKvwkTqC@?Pzl8s85JWEr3;ImLI2yMnj5r zpT#UG8tHo3;!zf3m<5k<`dA=~7-&>h6J_q;3CWWRlr}4pWgIujTzdX3mC^E!Nr}0` zYXR7-`z5b%kc89HFxIC8y_{pt7}9E9h^ul$4y_QzvcpEVo;C{ZVhudWfF6yK4_NC% zWC|vs>DQ$Lpg?C~jITzT)4Z=8Amr3Ynr#BNVF^|+yn2UP7SqLw=?!F6M+>Ok{8W#p zV~^-$I$83jB%5hmuO`9g(6a89f%~LvhXr`9TOG}!X&e36_>P5>ja`t(6`Ug`wOlWt z`qjd-jB9bE%E-r>dCVbG%xk&qQgE{IysH~=o1ZsPB~y4yMKkS>@rg3h*ce*<#n7b% zDlA_zxmM~ysgc=-ru!oCuSFUeOP71%PfC%-SKieBoQmmJgPNFsjUbpwE3J%h?ZbQC zNd#CBV`0OH)8<-ZIlXIC(5{nfDMp%=y4g?(Z~1uB8EyyXl|#Wv6spbZU~hWXO|6Q1 zL+v%$xTff7pW1qCNS)L|Rmx)fDD$he;$^zrZNZb}TfEb)G@_}N&;Rturql`Hwp%z; zz;QZ~UQ2kjTSnXFzGt7`h(xQ<4gpnJ~TGbZx-WW)>Wu(BFoQ|~FC zhg~(eGv4dK79au$81~njLdN>ed6;CD+wIUSziU4jroeH|cj5lYmG(B!M0Q%*Q_7ie zn~_}uZn|;}wK4Dov|7(ws?#%SlHv!^H`rEUVAq6K3(G@xD9pY%b`Q&kl*j zJZMC1ScWP`B=m;dPO1({^q+ni^&C!1!rPrt+-<9f`aV~~D^}`fhhyA&|8Tnvbqj2)WDjXGrNZ_`nyELPKPPzH9~=yc|!wC?#A@t^+I3?1bmr{_cgWB7uYkpN8<VfxL^wV9E?+-&-LVDLk5cs4QFB!M2T~{~*!->`b|W#H=vyx6tX8 zG*JTw2h0q@YnE`WE(3(F?g4d`j91C&;Mq)^HK7q>J#B z?f|JU@CYavm2jd^p^{(U=_l?=ePq*Mo{Em_IBqiY1$V{vbNX}4}(vQ|Us#DMr3i@>Y{Bta76%+J`4aXVsV3e8I`)e)lF%L6S-8W(dH707qiaD`NJ;BExDOjDx7Cd@V| zAR8pOfc~=Ts436ta%Re}@U$_-iZCH-#wSXMx5Sb-BW#3#G9pn;mimjsJ`;H43ad=A zCrQhtMv*Ox3L(>@4$G1|4+U{lkmIUPEpv~S8dHxPOAfQ~xpd7+Aae#c&uNA-{?OAr z+UUsd5ELd7OVg+e6Gz99aEUMZ zvOZf}PZ(h_({wnDx+YA*SivkzU0HrY$6GKGTGWm>)dDbi?e}lPZbC8%$ zPUdV5TZ%~O%VpfJ4Hw2qOB2-E@%dOIsiH6I&;v=&Dn#GYKEF`%eku(`lXF;54Bx4c z{a8)Agi`ScurN6i5pNUl6eSPmjo{oVLCr`?XEINnZ%;o<(DZRmWoS5E!XFEc^pwXr zow6V*AO=XlLpc*MLCYa!Qd1LCIBBH}i%=$BP$HWOH~quMU{jDnNhFD@5hbuuwo*rf z>p?FyFk;gIpVPnQu=sQnQFE1}dg{m0QZ`*sD^<*I7xR=JQc_$wfmI>)h6JlZGe7o)aYePKAq+3f$R?98t8mf17 z0@z^JWaagK-;7gQwKgHnVO17BR<3v|6=33bNJ)4gshEL-lv}9CI~9ZA_#IK$ z7q5kNV{|(aI7$7tVAa&4a&f9w3uA8vHfxaw%hv*bOJKp~gO`ehZaDjtsrU?%G=+p0 zqo}x0=}bzD^OEy8ou^LBcsvBm)u0BJPgmVsZ*Egn{7qzpai@wh+~&6zxL<; z@h=q&LFW~1_ZP_emp7SMQ_MB1=B-uimk(h$WSG)=jEVKsFpSYSWEo`s3JuhJ#42yO z;V4Nw74B&xPiWsu+bWjQ0P9P#iILf@wg8xm+7g1F&_uGd<&w9Pqp#F}mW7X&eP5KL ziq&qQ*OL)hOu-m=aCeRwR{=`~Z#?&;6nA;9tX}gBFFQ> z@j#;`wsr~6E>wz-wxofwn%PZt#Fuhpw@`=4sikvh0(PPAOGDI?o;Empr`R)!mXC7s z(j-`5vU#G>Erm=_xOQ@ePfDLOGV2U9f4wv@W;#Gw^1CP)27M2q`^i{OC|Be6g8}LW zeX+WRwpy*KOf$&&BqsUzMl6+B^s0LK5?apCx%rm(YRA{P^p-WH7n(ffR;MD7bN21P z<%#9%MmKM4b>b0)T8P=&klgq_V7av){;Jv3FIhyft3r#JX~z80(UdI{@xbu7udnCG z8vjzb2Z1$9b}*|y@uxfSP<*-AsxY=anAPm{%Z%==ZV#6+ImE#EqC;n*HFuYlk5_Q8 z6=xV#ry1SuFqgj2nt6FAbg8ym5(Q5qW}7Qvpq94L8?~qK@zzdPA&?!Z@X*S0W&c>r zEc&aNnt!*Z{*n}=Jka|>jH_+4Uo!?DU$)uISpq>dm}oY_0~*KcyGoujdVX-7-x6|R zqR0j!sD~R8VNzzRo4Pd4wyhHoU3=~v6Cw0Vo~0w7K~TcWsje@}t}c`E!Wpz#LIs`M zRSQ(TdzAzkl(!F+#N$+&<(MG-ue!CdJ4`5UteP5!Sv8CQnkn6RE&EpFpqe^V?ftwA zINMo5_4-X+Iwk9jZ~%^A6LvP|x0{_DCNrI2nVT%hxM}Yj)ECwe>#pIXH{B>5k#%@) zhbMy@yL49lXRD+-rqwqe{nOZ6qOa7Iy}39qd6f0HHQPi<|By~mOymsg)5lpx#nt7` zA_tP(RMnf+i<^Zk3C^1xt0Rt%EH^mmy3!Z8+woA(bVP*$*aubWaI2W;CcUr|Ef7Ic zr1AQpD<{YUJmbRJgQpWyXc|4PnZLD-AHTW%^8G^5w=e;%SyEX*9lK)3G%0B_nY0F8 zM;Xdx@mj~t%z4g(bN-!bEIY>)*{|&C+&h?jWGc~gnsNbGp8=jrwiv#PXnOE|>GbUq|t|DxR@XLkq%8I-hA-ZL9dMFn~W zkD$pLf5mj>r;mh~eGoHk&BriW%Pm0veBgU_ntk`RD_pJN5C_G3%P&kj!sWa*?wX{m z!sz~)8 zA;N_Z7$Q{IFrveV4GBuTI58o{iyAj>JoxaV#D^0ziX>=IWXY2dR|-Ta5oQ6IBPqJH zc~L}5l_XVaytz|g&Kp5}-pq&;qeX-|IT}@3(4^3!41F4Zvg6>8 zKMno&qW zm1o~pg-z8~QQ>ifUvkFnCE-e)DO8|;CxQf_iQtttpKUJ1#okx4iJ0PZ#uewHf@{GC z+u}XQhfL8kt~jo59Fnkn~Y$;7uK3NZn&({?(`= zW&?FeVu;$Yb!LME_DCk1aaNVX1hD-HXrO`)y5n!3)p=lKCH1GCf(HWVnV6m>hh$(M zMw+IF^ob|fo5AVH)QB+_D&&M^-FO$Gn(n0MRd8N7T&BC7NoIv`CCcbkXD#aBns&)p z=bb{~m)@rO9my(TG7j4nv!MnFq_Y$%7_CjG4rStYb55t2SK3x4oU~z8yPl^@Vp%F< zhxIlgxYb$M1r>mv*qWQVwHND&i)UY43Ixqim?o2!1T-nJ3qU71mRW%hJO;u6wOr zTQ1G6!nl2X?|UbA463f>Hmd5sD?S~Rwz66s>4Rm^{XK z-v&o+tJ?Rz3s~Jb{yrl~ZdU0S-=iN~`02L>zw5}K?)`A*bV{Z>&XYBI@bUP%Tyn`| zOB*+-vTrRt=Hs?Er-r#jfWXo6&rg48kP4gf^7((CCE$v)pZ%-=sjn>&3W{_9#-yM9 z4Q!N?+{H5ID1nIxS;itA+xUY(%YBZ58v+vnWoMnLJ#Tgtqnh)^qdeZl4t4|_QTLcM zH<8K4QaY2=d2;r;{^`$y2W%nAMwTYIMeKk5Q{j=CQa;=@ZfBF4AZIM2Jn|UCWB58> z#Nehk1=>wvSRvfI+$TfgnJGdsq#oSVbvGs!2si%oRj&pJqG8DhLQ$g)1YZX(m{DTw~5y$cfP|hbGgJB{|5ehD2a!_3NZ3kybNi z+a?XCr8mCt+T+6eY!pP99dQZ{G}Cf|jH+Bc9N7djzJ}V&pU5?b3BqH0A!9X*Lht zQ;3W!R|9(($8aXJjhDn_M-S((A_+2`wM!!=aq`Qa9rARe1gA@Hn7s&ma;7wGjrp2r zC$W`NiJIfzL>HG)_n=9m-qUBRej3cRsj;8VYHAqucO75ikY5ztC5~Wd!+f^zH%=th z2cuZjaf%6|hD>S#$#>9Jo=`Wm+@{48y8S|CLJ*&kqvu?MgPw)5F@x!Rr}hlG)3Iq4 zuDk;3SDETG7!j;O-Mr!3;`+fW4K_akG$v6IhAMJ;6Rx;oqJjQ-w#*W=ly-cn*g(-F}KyT-zWMIhVWh?5DRp zk&?2~H_jn0W{rxwDWrbJsrW{8glL14QUsh>jtXpZ?k#U?QCk=!Vzs%u&1gi=8rs`z zDvFLouoQDC-Y*)Ku((^6RKZI9SvdN1jUMDs&P2Lk3zjrJs+Dbcsaw7IBu2cuxnFKE zJkqE(c&vAk6}0Y%x@r!nS&T)oX;sE8p5m0glQrkd0L!m}$TYcJMs81&rzE~!Fl=r5 za(=bBRDP*;%*NAc4PzW2uG~{ARNkjxJa--Sig{t$lh$l=ncvzh&}|RS6^_xWDDU}i zmTi{gn9jmoG>h`LCEgh|x3gyAp%A~kW!NZIOdc{6bm2NM-Z? z&Lzr2ulm@+t(qZE-Tgd9K%UM}X?J0qoGSl_tCD4>_OP#GJ$kiAy7cL#)LZ3+~Z3jGpiF6gY1r@7gKye7M6 z*4-gG8OvyEks009om%&`s!C=jrosxfJ-fQC1G^u@$P&5>XL04Ll{s09Ailf4c(W!wZ{SH-evi#=BQlU zyMG1q#O}=foaRaWwCCjAzaK6*@T#SR(seMJAb+_@Xs#{QvG}=)BrDdAXDg-rignr<-N2xgJ>qN$FJ6a?#Qke5 zGtt~d(CoZ!{hJnAw z7VW_Ob^`@G zHiSo0Sa2EGUH}v_;Fomu#$;`n9{^WRBVi?^l|vgBf-*OM{LzGkH8`C$E~&D5Gc;Mj zC4Q9g5q&~{lXx^D2yIWLHQEMv>4X^K2U9K=TgxMI=C(4@rZ2MQX`J>u>$HVW#$T1y zeRH=(Ux!&#*E>`vCWg|ACM01ybbBafc93>o_GfDVb%mE0d;V2(qT`CP2z0r~fwVYT zySQ7{=UBMMfkn4~**0&vl|>%+cnLI7!L(v42U&Z?QPo$Ce)c(zxKCkNU=mnq{Vx?< zE98vU$Z_DveN2;f4B~Q*2#n@OjHYCIC`dm3a(LSaf}ar3xV-;{go z6*R|1i5m$h=ca}UCRE=sXgkPtVpx(2XeVINF3 zauhg`&vhd0LxQt%f)*$@M0a(n_$?GEUPk0wiMMX@NLbV~J`L%FNz!~Nr#bzXgXm*j zR>^)O_L8Kwb)1qpE>~FgHG$_uls^)L^@0~f@*!bJh=vFvKEz}9CMQ%8hxb>44B407 zCv*U5Zxu~ zC4;V501+Sq9EqBs1dkYKU`<(6WYuJRDVrp@b^M}@X-I`ocxGWoM0NFpo8>@DSXZH? zLR3aBA@p1-XkxxcBd}&=j1^zr7nGd$Y?f6c%2}D1)r}5FeO;+lFg9u)7Mw~~IBW!) zZ&W;-Rx4>$h@lurYzA)mNP8M_c3RVidWM-5MOoNbn|@S>xmjI^cbvB~p3?Vo_n4o> z_+$2_brm^?fCOo-=}2=_n0N_}ts_g=lu*b5I`0T>C{%J;8FvLl5fG&+Wk!_{iD?G6 zS9Eqe!?H=KDWkBlVSe+4Mn;}QdK2_Q3Q3#ZX)ZqUquR7&2%3<#2Q7BBiM4iVxQ1YfXqh=mRB{$= z#`i4#M2746S9+O{bf{F5gNX5Qpw?DH6cw5<1d2P}7^Qsv^sTnjj8Y*W(MO(Zb(3!=k;$g1 z%a%_;3UMfjdm>eo=4fo&SFE2JGw2vc7OFT}d4uBenGktO(ZZDC_Mc4pWAUjI@~T-- z`b14La8)N^v$=qM3MLf`Cb3ASj%sMzX;N`QFLsxonkgY<*qDgZ5XOb8JF6Pz16x>n zMR5Q@K)%1}pslGoCfjTfHHK^ge1+(o0E@1zXluY3e1oS;6>76(gq|Yl~NHNJlCCk4dltrKSBOWWdsbbH<~bSU{?# zd8jv&f{H85$WjWFw}fdzNV<vb$+>m)6;{`c~sA9uB&v4G>L66i>H<2kCpc&S2>W{o3`yrsuJ6ur`t4E=Te1Y zh?3hV<MHvzDk>x3mSYcf^atq~Wrpcfx_Vu+s^< z3j(X=)Ndt7Li^RbSr}+{wV=+%p)ke1FNS1Y+-N)YX_?Z8cGPPy8@SG-f%xcz@QQz( z8GaiKi~AYC_F2Ldh>tG1rb4Q_OGLjvm5J#pd`V--x74YE3&QB>S`m7#n&_%`=thnF zyArfbr#c=-Moe=962Imo64fF=$+e8kyC#>yT&jPn%fnflX4FfSAiPe`^~RP7Bn)_L zHET_TnOcUsa&Sr)Lv*z=33|Qgz9AP^id6wCppi+;vq73mntaK8R?6N*Gttr$-$>0T zNs}k{Oon_}u8g8JD7Cvee1m+6{kM#*&Zoot)VE~FcE0P#qp3lXCVxJusCNvg9ZW}P z#6#!Xb-uiYMhCC$x_A%=mOW|C)yU65#m_8ilYc986B@UrbITA-U~KHVlN_fK)yFW2 z&jQ@TbgQ3q$G#dIFCCJF=;~kvT#Md>kW1)-Dkxlc46e8f#xhI4l{(Fk`is>homz{k zSO|$C_9ick)W;@R70osyF#x0C%t`EDdP8p^%_HB0!D(4ZUG=9&osCCZh2{4@t(!!% zd_tL4nNwVqfXr0&iJSUqA4IFKm~0awe8Z@Rd)>=@$M{Q9BnxoZlC_QEMrN=cD=}6)nta38;xDCH_eikdY|RVw+O+(+j^3aiDWRi zt?Cz07hBY)r&++ffxgpvA-h?!ZC3Cbi&A>5SS6I#*^Xg-%(KgU2^Uf*t&9vT+D$Ah zInV-8?aZh=eu${oSQyHON482$I_mr_;VPY5xxys;+LL!5<7?3)y1n}>p$Z+JlN5G; zRHfy-c{tTvm^fE()Y>Q~*Fss)YKO0fk{#mQ&@tPq8f3r*nsN9Bgj0#tt{slu6R%20 z(tK4XiwQjguABPU-V(H{(DaIfHsCAG-;f7^PZ-)Ys74n^U#=Wj%eCP?m&5twu$6p` z7N^62)JTB#y!}bmP$PDP`k1|0^SMHpm$Y=9tQ3@y&@I*EYMIHb(Y93F z#|XtKUB||>U0c?i>`m&?vvBy|{Oeqy=Mz4S=J$m87l z=_*(7)?CaQ>gF;o#$tv=Q#m}$S9aNVWNr*tY}oD2vG3=);m-DgB*iJ&`x>rh#hG$(`mT^}4~AoU(@XG@mvC72ml1asPVttT?!= zQ*1m`t$ya8u?lJsoHnCub8Rc|uXD|xYu=`QXnHJKV~Tl~fiOuX6 zJ?JtT6E+gKTKA|@`@)tVqG9aU-ZMf)T~@Foqk6EOqq$;>mIMRJLtgs%80ctca10e zZf5qr?(Z$-qVfqG01wo2v;7na>P@@k$W&vM@5_vH@4j(Ar;llTp2k^Gd=J#+XC3Ht zE#1{wcjXU?;J&n23=jn#2oyMw;J|?*ZXi6^km19I1P?x-=+L3U0tGM%+=!4OM2iL? zJ{(yvBteBFE0#=oa%Dt_7$2r2>9AzN8z^(mTp04BOQ0ibjucT*Ce5Hp{cmOz8Z)O( zl@gau^$C;X%c)qEHf)JdCdY+ZaTXkU(&bmDHn%pVTGD34sx!r2eA;#**|K&$n!MR@ zEl|HA4}P7fmv7R*8h75^Yj$tju7f}3EzGs2WWy2!1mN7+^JmbZMUN(3+VpAEsX;3( zN;U4*j)XnV{aO1WZHqLcvaI`;A=$NP!3xEzmgq{mNEs&X+k1IWo=kQ6&KP;Aak^q{ zLw2tCYFq6`dkfdwI_OvCzbPAL?h?29!?Pd1J)U-M`Dt5ZFqyU^&q2M2!^*q}&%*tREuh?^%C8Tf^G`6g zlB-L(7aa>pIH+nIFfFiB%4Vb zYh!H@S+!=ZEXiLjl@_~u$8yy&Zik)sSdo%74&56s3(=}D1q?DTNB`RJx&)0B7)q&n zh=GJZTXy+nm_;L1TUGn3cGCAo_E$uPEo&CU={oi*z+LOh@y&a`Ot@TjGcGh>rzN(u z*g+#MI;q>36*ga<+oc-2rFj(=Ijx`_)#mIbHfUmqmy8g+n#QD*Jl((y8&%vEl)JEG zH%9Qv#vJzh+qZ26Nl*oa3%kd+=goPtWOcpyTYTaES!i5mR?)+)Ayj6Uj596IbJe8?WX7WS%5>=(Y(dW!x&EF zA6*zprJs^K^Us;hKPnl>!{cw$2bn2?j7|T~D+f2zmtWjYj z(fGl2vB;FM0^4G+beB}V2z^Y#ne}w%L^sK+bw6?x=IS`RLmf;%s`Df>GkHp?0f}fl zoZc|27|bSWE@V}VU>b?Y!Tk*LlP6OqW60LECsFBAH{={&+PB9aE%Ii7iSdR;LR&c@l7ki`QlukwnLm{X zLdb=yqXj$WGBL!ie);{-rECNw|3XE(g1XY7_&gXk&6vf6IP0eF6V*le!^bfas(fU` zBm{F>&?7PMmpV*huQqx{7B;e{p{r&Te_6$2@v&Z;YNVEP zsECz7ZgbEXnrqjg;+DfdGr4Senu#1&9C) zx<^vr2KO}jLaSQQRa@M;@0>*SsA9TSy4XSTuQp3)?<8wk-W8KcQ8b#u;5p8q$*E** z`YcqB=vFuS{m#6gZIs?FcRRsMk3@Ni>rxRXT^-VqsEobudIiVQz;}e!ufCt4Iq(vo=w+n@#3(5q!`)b-2N@gIeAq z$jZ2w_PU&1VRDViwZf|Sd^cU_6C*grx`CLUkfBgV*A@X82v^BVmf0E6IbDTik7UJ- z>UXo(&$@Q%uyFbbav>)?BfvAmBOCgZ`5|kQ_Ecp zcY1Va+gb@Z6zX$^bFAT0B?#rEj+j2}#PhjSjF~m2mra{QA#A-i<^)sJscw!AXNwwB z2;u#7T8vzveTlqbG^5&igG(_e@44TXfce0#1FI_K7urJA7t4z4&S0T*)G|}>LtFir zpScL1ZZ)&A>HQ<4eFNmqw)U(mQr3x$MPot{h9G%ja<{!*)sN-&j*l5w3ty+ermj@c z!zOc{O&h~d8#Yx9^{D1 zs?Ej3os!e!ELdl*Hnp`B;dNiCRApa|M9bwRwww&00uDN8;-aiAAw6jBI6P6+-XE5^ ziM}hEP|(GGp~2>}^6J7H%ivz#lanaz8>{-@v8Jy~Zx`UMxg~0yZZRem+gLNV{wtpZ z-m}F;EYp>G@vE>VT*IfHPV%OS+umlok}sY)cBkE9VU-+=2kxm2b*h;IEj3M{KI$qj zyIcyYDx*4H(lFo{xh&nyEGNa~IaKA`le2oMWDi(Ky(Ww;+18zcZlvsu}wTv{SpEP?5m( zGbXlrpT5%|+yhPKQyWle>(y3L!Fo+|ulUpYb^PyCVK~meg_5(hY%cdL3 zCFo$eYBE8qu&cm{z4=p~YnmnVlP*&s2_<~JFT60-D<9q~9H7cHQv;`@W4&Uku6J>+ z%yX6o^t0}oh#dGoLnJBU;xc;EzPNFlA>u>i^QvWPpz+WacjCLdd%?pPA5F|EhZ7TI zo59zUMAECnDH{<5gd0I@!d9|2r4uCeP&RO?l$*=0*SN$|EB=*yvpYL9Cb_b*jB~jY ztf(|2#&Byktn-yZgRILkFEG>;BPt40^t?VAC>b-iSsOcb=`R)(K+9^ZPYl7|kvz6p zoXtbDz#_kj`!uq`t;$=x^@Fr{={XwXr$xEBHas@v3pLThM;W4!$T_|@(`>PX^CnAF=wvAe-n zNs!%oM%KZ&GrPzBfQgOky)TTy8lghJb3$IsL{C%Y1}BTLMh z6EdSN2o%E;vOsYY#-%*5bEFfGWFvja!(CkbCZ<9nE=F}Qgq2R<0O(pI$E+8<I7&6U`o;w!NAuFDh?>fa{EzVrO6Te`v};HK zMWDB&(At}%lT53^>zo*jtH)U-u`Dk^V@+JkAz73HcU)wzzG&Vuu}1MNZLe9;xW&pe$*W@5fEbi*UuBmGPg zBSTGV8p+Pflrn9}9u-IDW6;3_tAI1OH^ZmsoG99in8(b{fdHuw{ZyFI$Mbn28;wL% z)5Z7HQvu~u=uA@-lQyKZ&pD;PwEbFClU%@f3MJqWG{1t!AS**wL@#3V)6?VAF15nk z(?cHQNc`b9XPi<<2~csG6icc`_DV5IqMsDS#z+G~dF#LBVjN5>k9nH&QT1YnJ+fGQa9iSP3-RTph_P&Zzt! zi-b)DWV7c}MJwG^{9I5uWT@KoJ%Mt)j&s&P-HP4Dg~ zq}c3?M4KB<#MIIOiNn$x(e4u0@p2cPU@cl}$w|G+ zto4~GJTs4LYsm`(2_AF)B(_4dY9-KyEECzN!bj@bLmNj+l-03qEK`!emcm*lDoW!7 zA@NgEt!&R?MMoAD(QzZnPGT&+Wm4@TCud{Cr)Aj$)7Qk2&S_oIu>DR2y}Y5SSRPrT zM!mv5om|kv$`WI)XW3N9EY}gTrlcqVi7Z*wO^t^wI@yan28o{ols=HXn>=-(()v#J zOTMsUFseirftA*amC3j~SUNjMcZ5Y{>MZZ-JDuXDO?B9^+*&(rTFAUV;WP-n)5ygz z$9V%9{BWh2i%Q9qF@_Am5rZ$Vyk0i7+^$qn#AwD+)wINf)}mS2fy7NEDwaH72z1h#gy6CCS!2b>gghQM+rbK(O|F*K-ZW^NY+2 zHPOO7F7bpj;1sR4Y`HMSF=!GcmH@RTwb}dJo2!c|qjOVHQ?coi(QM+^Q`4*n<5PfQ z(UbK_GsV&dgU#ll913boVa3aFX+Fs<+Gh$torFXva-)rG#i+}#w+%B0KGm4Y%GR4I zII5i}?Vs1gVTqd6nX=+Y9jg$w(sFY>&DEoI#MSePv5sZUu*)!ES-TcKWz!%?sv=a& z#YM51{>eWDxT~^8;~CzvJYj4Zm|%o4NYZ60Rg!3}VnNL}?`$}53fhb#U(TH?MdTpU z)72|1TVO;e0XxNlB;E{8)^^Q>|b5 zRTD&$50hkJmfH3rS{bgsauQuC{Gk5zseKU7}n(vUO!7)nJ2x85l+q&y6$KSQZC|Ts}Rc1GZQlstSGxHEoBk0%dtMRf^jCH)Oj$p}v(bzKRbdy;rl4mG{ zSs(gVTppe@q$Hto4!!;&H0J6N_F(>GFqe!Cd^=6A%GXGSX(-*m5mU*F-nvfIx%#cs zy5%GJon*@1NnxXzj@GCZW@*)KvSoHQlMIp*?Yc2#KdfoX(aU79?rgS2FT5czfi%F- zwoPxP)+Dapr8EkZ`o-NomjZN%^vr5$+LnZr&`M-kbS_$^Y?|G)Y2vQEqi$s_Mcynn z>v&D$xCU4P7Rp4M<@&{4-3`(Oq)|8=1z9M;|D`uN*JhiT}BmQddgJh&e z%QD?QEo{B3gW=KI*3o`a9P&-5`_(LE&v_)W!=7VwO8#uRh-;sMBBjT)+vn>S6yEZ-*C^7CFFzFO{Gan#%ro} z>!W7NAGb~Iq;0@N=JnFMF#0}_bx0!~^84=O`aCItW1j7<7j16O+??j}RcMfeCKqE~ zGH1l^Uh}s6<)H{7!d}T|=}Z#ubk30JApTs6{3giAgcH`D>308fwj);#xeH(yYWYFomk z`_?K>>@=2>!siw;CU-RJ9_NZF()Z5sQJnXi7V`jt=fTENX^$iQd+P$1YcAgF^yTB$ za`BtJ`El*_-qu{GrnzPZ*9evDc?#%8=I)`M=tw7aST6qOAVj!>Zy!q@`K8V80^Dby z{ycBb)N;o|z|5PI?s7BC`5<2TM09qGhVL(<(qC8Sjz8I8>fN@My`<(kcxOu4^DfxR0%uEB;2V1Uw5Xz%rc!XTDD&tSI`>uNx1T*!cBVGe$4W+!N=ZW z5*=YG4JIDXzIWHGn$8dhf78fZxK;_@IL&j{FS3uNI~$ii7ZOJm#x@z8VPt>m+`jJa z9OU=>=+yL=#|=z&-K;Z~SF84XCn{_*CHLA-^?O2jp!aVybV}2_Xv9i-CGc> zMYNRdek?E&D_z7qU9J>d5g}Nnt-~%>taq^L*&um3?s&O$*`frodX6ZQ_1v_+OH1}^ z)#}^Lkq`EsoSSfMvVezDx7%Fw^Rq|&wH}`e_b<}hI#Ey8ogBCG$4#rJ&z#aR@0OF{ ze~cg?0RR5}{{tAHfCCa(pn(S>n4p3S_IKWD39}G zV1ihlbLw$gn2w>&HU27Fqwujw*r`39R+gGXDLEyrc-p!ZeWC7nUR=6t+dlpTVP@~c1q|?tj+4BVTP6pQ?O}LdMJM0ic8#&zzRDqV<+8N zU!|HwxSf{W;>l{CZLyW5oq0C-(we;bsOwfk;`-!;>WU}hWD(~2ovAfq85x=G;(MB+ zK4Q46W^lO)D8d-`7}Q;bikY#93Ma|!soPx#aIYu28?#s?+RGxz^%eQBh9FHu|g-brdLY$<uJ7SSH87r#x~`ruvEd@B3E77 zHu6=!Xv*SiGm(qo7Rg%MqaosQi$T|#0!b_ zu-E!Lz4x>e<~;Hl1CO$$d8aFI_H%#xx>;~i4|n*ZUZi2CmWEh`%dQ6BM{k}25V`{TQbNvIdb1ApQj!gb`WD99M~QwSh0LDtCgwaq!r0W zND4x8I+hD|b!XOK`A&kJQ=N#!q!J0(7&|r*Etld>QJX0-ms0Mcg3F)80+!P->d9qX zyY7>k>p>?J6964txcC~i ztsdrBeQMgFT7flUNL6QEXJ?pKVpo;9{T*SEre7G3@UJ!&WPS ziX!=_mnEVXf2YhC0rj7J>g+Rh2STqgvb1pBll(Ahzv~jx%LiktPW^1BV9^TJ!gUMk zy@E+%p#bcI9&OqtPiV$7tNE)ZhRy&cfZjg?ns2)lahL@RSm;y|z|xtljGGie@$|JDOISWG`jFvF4DQO!^}@wb#Bb-dvb+bMm3BIhu^1n%te?cG?(* z&8i_h+Tu0rXo0)1_foR0Px1KD+2|=`zhu+Dd3XpE>* z-RIEG?iJS4j-S^<8>_OHE4XvaSm%@YC+S32RsK}g-{&x~pt*Wv?XgAgnM0VJ8jsu7 zrQ7bRGufFn4zcMw8gK)@_Org_va-(bynmT1w%^ zVC5O@U=Dj|pwvOvMuC#UHQ~A$l({fom61rZq0Zu6+4|*FU1^zYNC&mOm$b1Vt|j3G zGF|m)nA*5fAN|_$1(Zdj z#RtrlliR__xqTbp>D`3EVI=kyMW_(2VFWFi;3s0iX>D4*p=_GPR(R4NtG7 z;1QahaUEX`zM&Hy4_>Xz^Pv_ahRDvS(ARftywPG!*R?_qn!|{=q<(>MO)tylqREQ#Khy@Fh*bW6s3w`05kWRyq%GMd%C50MM zElh{0A{joG8seC~y`h}Q)br(5LnV@q>>Em-}{<58+k%(){`3gSk(qYwq9WvGnGXHXpsyh){98S zNn3hm^I6{7>6I(SL=Lp%Y`UcPp`AE!oX26E937tU_*-4*2_Lfc#EoU0K^7+$a#2>gOj~N7b?xR$ktMK{(yQ@b z2IkLG^kRGwUBUTUMw+B+It*d`B@&_#7CMp`Ql9^LT^3QDyeZY?Ia_?n=a9U~$asx> zl}8uO8tZu*ecD|OHsr?a#mr>m@jy%*Q4Z|E)oOGVZy5~*wU{hgkB*&77%duP0@pD9rf^y$U6j&C1yBMa8)Y`8yy;UnEvEb3CDph}iLNOg z4j6{5QT*Nh5sJQ`+F2-aUTAwV-az6R(Q)0=oe7WzH!6m0H3wUOX|6dWe7fgJG}Tkt zXs<>U3U=f+-s%ipTejqr{uQ7n{$mVPAQ7$#&TX8tE|?#&AcXVPE#A5T(>j#^)nrjvs1Uvwg>9~LD} z4$N_;3GwOa|L7csexIcRW3*N%s&-wihFx&3;3QgNqp7N=8dAAlTBx>}*BvBwtd!)zaM`Cbg4ZTV z#nE(Fc>9qk2i}F#a2yQY3-}iN8Rfyqf5{0c;$ysi<{f zT$!QPW$16cDk7@oUq+oH?xehID}HJ$p7vUT4W)AS5Ye9N+&W;Rz98X>6ue#wN0q9? z=I172Y^gRY#*kxiYN!n{2TX#bN3M|MO$4ZdU5qZR8&=pro#xF#BU{N}$X4N|%##u3 zX3+uYXSJ&47;aalSefqPk37HtPyo>St}VSH-+o_VN^T6{4k_XgwmsRYwyCm|{$b$S znAmRZ(56k@wn{qQ-qTm#px)1(q#VSm7z>6YE5_?_m~1_|>lJyS z5k}_ZsE?;1Y+pv-PrR-6c2bq0Z{$%?c0T6w!Yt~zQY`LF1XiP=1>~K4;hfX~){VF=x=y>f1!P@#Sio8w{WOs40Kj@s(p z*v=s?C`AAZ{O%8D5C=`?{f?pLjVQ6KCBdTWZL-XpG;rV-pXClZs|}MqLAvV z?T(}dBW;pSDx@lH&IuiqK3F#n@bs=$7I&^%^8Q`KYGpe8hM{IUU-}qv zcxG1=swi45l?}pNALe8qBixmxs@^s$m&I-pk!_@U5W+aJMm3vS+UJn&7~Z)X+7@Wn zloAI!Zpm?4@;z(vSZymlCrQXHn$k*xUFMch*DUqtST(EsoFIonPiG{ z=>{Uh5oc3UP5#mC1-n_oIcJv|a*=G7IG(7|b=hnoUs;|nmlhQb675<)+vL2%nW*+x4E74%& z-jU!zvtrJ0k@WKC;wOqR6Gjau297Yn8LI-min?XQ2oiHp3mP?Rq#GabS19h|;_#+s zGdBk$c=}z!NfTtQ$PUFF<*s6_9+oOSoHRS^?CP^w9(5F%rn@>ae@btcim2wIu2910 z)lQBMlgvjyvq-PC$&GC_R~P;67FCb2Q==K>7IMXo%Gt*IYOasHb>8YxOoJ}_ z$SJl`_Fh~i(qyz?&8xzqWpTFh%qHN^g%>_KHaxMNGIRAxfoIy={2a z8o{=x>}|gGAKdO^tQgFsCAurx<_GtXNoF(x*|5u*&es`}PiJV6m2H_5TApoJ$USaj zkq`ipH*^zsZNGS{C&(r3rC1#so_oY{u`QRot%`gmq-PWK!3Nx=qof4eyC9EX+RQEA(LQtJ*XcblxGLhE zV(xHNraDd5_53;5odf+bp?Ozwo^#sn*jTY$+tq@%ut+qy zQ)=Rm1)U<^yzaiA{n1sj8{;E4Z^24yp@_SqrYRXm^O+BZzsE7rkNVo>co)Y7r<-wo z5gYr?eVoFLCI@{1V-|iDb)Vmtt}G=(?5fMFzJUO%hS{RcEb^UtGkCi&)iO4F-M)zz z7loTXgnA>%;d{Z?;*%)-eBTp);9Y4uqw~G0?9go{OWiY3{vd|FJy>@6arP#|vf)6} zx-(+1IIatbVQGAOx^14NkdLdFZ9j3VqYHt1A`gD;s%pibyD`(Zt=O{v0vm&oX7K~W zg8~8x4m4P>pokj<4h}@v@S#A34r^BFz ze|ja`)gZ*ik^ZS7m3Wn_VZ~^t5}xd`tYOY-D_d23I<4cX4bOUoy!a?<%sB~1#CUKa zY|Rf7i!%i!oxSJ_7{DczF!J4j` zj6kLuOD@9jl0xvZ=(d6hr<)j}ZKdNrlaQngk%LaE_&}7cJ)SreY`GY1gYC8Nz)~^0 zp)xDaqo^K3X~Fk~tPnLHeVYtD+AK@aLzxDc0I({pyb{YSwcK*9u4+Y{|QOY5UFNgH`Q^Rho@>@m9i9{ozZ{=6bnJ0lG>Yr!Uu%yZP|+C=fk z^i-7fuv|O6&ppyywG-7*BPEr%#4xO?R>)3#s#XPUt<+Q3sHLo0O|xA#LL_08mRR+a zgtl5R3#^t_nR+8n-6H4AmQ7%VgBMZB6#dgrG3gD}-e0L2mdSj*9T?W~-i0sG1M#f) z#{wc?fy;;`o|xi_?{fBDB9|m;*us|Lm0IjT*0bXV%UzTxR%L7H(t`E9HrnDo7Fhkc zoGvt$&hp+QZe^HZ94%4D=KILac|Eo>&IU8|nbBD#{nXb1!;5+_<0$2}#*%*)6|ER| zHcdjyIIZZkuxG|OTx}7q582OD4%M?%F&OahH)pcL9LsymT7vaVH@Murn_ov_@kip{E zWuKjPy?XVs!d9P7+r|>rE-u}?<2G}2$iChiZ$arp7xdKCR!Z`=?q~rt(9A?9qwB?}X;91H`An8TR57l2$P1a}bWSi_j(*7Jc zHKX{$;x>8U>P$T^CMfD*acO>g>zXF_oirp%b2 zmi6k3&npXm$SE~hUgwUER3Ib8`9C@S@l?;Eq6xuBDfeKKnU#v?FO#=6YpThQy0hco ze(9=L8tHRaV(Xs6N#9wzpyaV3P?4zUTzEG{jC1g#TA?RCDC#Y&pN zdSc)P%13#&lYHOHqiKjWvQuVLb#YQ2ytcQ%@D*#GX>p#nr%>6m^qYYLIvwmGm6pz{Yb!w-<0cI={hY$Igx*wVi!-N zY0DXn?~=+y+(~tsL3NU zCiFNM$)R;JF^=ujLkapxU(KzNGR>(hXIoFH?uLQ=p(j$;BEWtUm19%Y7&QqSy?yGo zc)d}TyhQk(bS~_bU)^Z70NcnI@{LS3c_c`u`rIes)L6nDsQnPdDw~!>fF7-4bYDcg z8_ouZofWGd@p(0qip!mf+^HWyw%JN%5ujaTZa5uAR|6lIn=4E${yvJwWLDFMX3fyZ zyc;;o!VP`$-R<|v_0kLXi=Sr;D{XmK+hzTZ_JO=zjhm8lS(EuDs+L?2C-sIxX%%;L zPzkCciFCrh$)`v=`D07|t1OxgkXaG7n~8$_SX>TLwn$s4C~+4w@NzYKqFfxf4G&lyJT8b4$hzqzcE8Y)XR-rWVLPJ| z*}NnvRJY7%#2s{Oxu)592i(Va{r$Fr>HM#9jyc^J=je8^?r4dHhO%z2v8MZJa-In! zmTl#RO~5@Y^S)*75ic~hmV)Tx*sCzJRt8NCzGb=Btsjlz8P$l~Sj+}(y*duo%EPQ} zQ|pJ23alWmn-=-VvqWE?An3Wo)SF6GdRJS`d2JDwFeh_(>lRJh)YIkakCR-mn_A7e zNA9P>@SJa4Rk5(am9?p9Wo_sn+1ZH|X4F|nxC7-D-PQeE0?!b#lyWu#mwezQ+ErvhpEzAmeN{@OzFFQoYV=qKnoRlAj*+fGPCqKVMl#t&`zz zB5l-p`*=1on!+*JAh&~=cu6Uiir{iO?eiz*mWLj)G6$uZL)X~Ni}vN9U(+rpsoa7} z(0kD5x%ukVQcZqTRx0~iEC+C4%^VO-XlQ+5{1HA+Ttf-iRv zZu@%Yud*iHIuCAwDz@mSukh~yM~8F#&BxSlwwffqh_4UNsCxX4UK|DnLQVxw@e~uz zo{o>$3QF$2t$cC@$L_-i;V$q_CljT@`l3zJc(KbI?dJpx7k!bf5{3kkZGG%;x7_er z{O|565eC<<;|`JK$WQy439>*>%wS5|`YqOskP=-i;DD)TfC%Ug<-C?_4}-`NQRHVt zF%hl)5y*^AzGx-r?Cjh`vB8qWrVcO^Gw^*nQRphmz07eOb5Z`1V!?6|paxOC)=a?s zaEv4p7}?GuBCp_{Pme+o6nE#fa8MuH>Gg1=h)~faQSmU!&z|fG?6!}5ya)g(()-v$ z7!#->RT4FtOV}E*=iV@^_@*Yk&{XuV)+~xBlh6aj5wCcRMpB34-c1LC@e;+30&&vk zxXgnhPKK0^xJHaC$u91eaUi2@S&V|FTuTG5a=g657V}3UxrXcv?&%Eg*@zM=sg0@b z5tvjC;1mmsq|D_8$}Y8z5dRX!x+@zqFtl8-Da8t{3}!;`ZMoQyu|iM`;ZJec5)l0- z^RuRnFS#oy2M0#-Oc@{1farrEO7bLE69qTYa-6Yy8c-VP5R%{o>&8xvWJRgS4Jm1j z%#Kl($`Uj9BTS~z8_n>(bS)C6PKCZG!-5jbm<%DG4^B!GSj>eXum%K)%;qc$&V~%B zH1fvgt0x{xXSgUH|51=4PXQCpT7E^`x^pQpF+J%sq4+FHlIfZJM+l?r7m;qbEa?WB z%@Dbc^59L&(#xepuohA5aYQUh1Wqn{bNrmo{u=aA)=8D-i>OM45`FSHOA1KpFeKgR zAd8BTGBWe1Qm^1Bu=-Li-L5>{@zY~u#Di8Xr^^`hzf($nys{&GI`Zc=cL zLIP(AF|lc8Ofp>$qXv{iTdfyKY$CO++^^nj&LP z&c=trWiU~RVZM^r0B|SOO-{S#vI6P_+pkCkPD3xW!fX@Dm{Gf^Y&R#3j;<_(LNv(| zYDXyaCKtv&!xA`mt>eBh{g`pP#M5j7?Nz=pRX%dr?lY2l4!1V5{=#lHDG9ya6B-3{ zOu29$0gdkrsYGiKntqc?xdI%ss#fc)DbDn*OwmV+HPg(aH2cxX^3h5kQ8qPBye9Ak z^%PBURZO~)3NcD4)AAtkQXqxp?w~R)U=j$;W&_*HIBRS<&Xo!MgA7WwXdAN=-{`GX z#)K7(k*bI$2XnC3Qmj`caSo?6lc3Odz!OHvC0fd~`7q;8XKE<})HR1J_ArTJ!*xA# zEn$sn%o67OM$jiCcK=)vPgQa!HT3~t>VWbNbqGm5Wp#x5t}%fp`ydFm%&lA<)Hgx& zRH3!jdh=dmsWW)gScmpl({3BXD96$&QsjfOw9wtU&Jd$-@3@mWlhPgK$n9P>U6;?Z zGER#&P}LeLQ&DzNe^nME)tv5g+F0ck33MF&%zwlN$~1_E{u5t+u~2)97^70`?2}jM zl}kHAL;W&fuMkYREh7ULR;Q3~FZ5LpG3%sM!_@MS68^H?Fzj58Ydjrk+#u3=CYNtj zbS0z6KTf3{GifN{Gf}tZkN`Fqrx4PV07XE$zsyyQOU+t!l_d7>mgi@=Fi3jf(ufv# z4~!>$t6DoYnK&^qdrKm_Yr8uH`%^3 z+6GlJy;pzf_fX5Km-yD8&WWw+QWHrlz?zQ9$_=D;N@bcvZ@DiXy{o?h@&EF*Ct*f6 zFG+m{&r%u9I&CXSAK>GNHF#?{!5-Ih-Zn1xbi;-*Tm8wVL7&Z5W3_(G2x&PFY0A!J z)3;gj!t_qeBd@d9#V?C^%mP#-O^C@-jq>2q-{a+r_!ZaCoEss z@Iw)eanCp>0Sg}Q7D>lai=9`G)AlpH2Q>5VP_Vd8*U@54_<-J(FW=OkwnkOQ*IL>2 zR#}%18|h4|P+&~9bN#qd33HF06j(RMk=v3$rEqT>u)^Mk_NIbNK6e+%XnY31Eo@kp zz3B}dBw#dmcL!w_?KW{6k~_Zla#Tu+ZcjQ9G9gn~RH4yRJvGgyH>tRH~Rt zX@aV$b7ByfNhNF5cT)KWR7?2oNSSs|_=ko5xRpZ(dn-7`@;1?Y8MN%JXX&y(2`n`4 zS%CA5_uTkur5ECEtqGaea5J=lRkxIbq)%#>S0n9>bxxbR54Fs;3mF7{A$M+#vud|X z4@pmyrIs=c?qi#HmE_pj!1kaex1ql?h2%N=3LpnsV3uS0h7Gn5t1`-BmhI>dOoIgP zoY{Qvx%HA6QXO~v)_9MuV`2sC8hJC-S}TKtlz0=->Y%GY%;m#shE^pMhZ85=0@yJ# zwugZdg!j{PmzVu=7j3&RXMvNCaFn6VO+|mY$Ih3~>==CCX=|rhU4yt%kT;a=$dHP1 z4%>PsW;E4=N0IMGH{H>qdx)Y?Iez^dQjYuBK=rk7?|NyW_n^bX|Mplw`>S$S)R3Ic zfQ1+@`_!6K>3?<^uHX7Z3?c$bQKo16h-_Jm9rL|@?Zp)Hko%aTsu%;!T0I3(tVb47 zv-z*fIv=rGKGhew@GL94*nmH<#J)(&@;I0o7-D&cpDmdziyMT&x-H3-?FOzKYtwG8 z&5f9ErO%O_c?dOO5qx#)Sxm zq3^bmrxTgSNanm6r6$_536d#odZ@8kt`CP^?}QnZgHB1PoB4F8xh<+Yq6bOe~Ta-s}k<>e>O(}7m{^^uc8(U0!2K7cchg6yow0y;Dr7e*326n9#bk5$#DwUc| zT{fT9kowkD#_hW3Li}Er`hZ9qaM#*7qR>W(#fZTeL+zEzNzG9q5vXlEs;n@PHkZL8 z8D{6!C~(NUk!z9@kc9v8Q}MH&xAuhgn$ADCRI`o+LpXWQnRiD8iaTwm&1pQT?)p&s zsx7EvbU2C0akTo6H)tu$^F^esyt#hbGapnSg!aW(y<)zYzI|H}O9PZi4fmdi!V~=> z-4fO%S++#sf7v&M4Rt(afhWn$Z>asg91l;j{s5FP-_Ce4o9PTd|HT zk7InD%*c7No&A9Q%eE_z6N2OMbI%E=1!}VnbDT!6gCo73@X99(5mC!gb*i*^S=$&F z5y*@e`~Y~-J6+vk@tEX$I^Ac?W8B}iy|Uw!$4d#qo4ar&JHX@6+UJ^yDT7vPj>z&| zCsdu)M?PZccL}ex$ZM#UW-x96Gm^iR*>zQV?##WeTF^D>UrmfnTj{qsP>>F^(3^#F zJ2s`6EhFQd<)=KXx0J2@1j+XtJF%N<$*t&1n;3Jxt=w7ZD-(1HoaauP`DUez={@K- ze3+0HmTvmoYpCYE8FxEUE6e_kJyz|#<<;u1p@(nbSyaG>-oy#wJhrnwIen*?-nRX| zv5S*&eg14JImKkh%OYZchDo0CuLRo>Jwm{}tbCQ=Tr{&Y#et77%^{s?&6${?Fj0+> zQC2@P+gshC{or_MkmFY$6I?e=UL{K$D)j`2(lOSR*v3RHN*m7DY%Q&GUFQ$@!_|+* zBY2cBTJ*WQV0rVh;r*Ajy6$vYcbtjG*)rpY-;1?g8U=O0%gOA5)H|9OOJA|^ffcrt zkm4ut_!WEau`au6)w=2a)q&78tOp=O+;~uc;Ddt&6B<;gPy|AS2p38$Ag}<#i4h@Y zJV-D?fR7+UiX2I@q{)*gQ>t9avZc$HFk_0mNR#75j5aqm94HZE&6_<5{`5&Sp+KED z{fAz3Xb>k-r5Gy`l&TSG!h%IBRwc@@sMmr_l~P?e7UI>fO>6eF>XoY5s2jtg{dx2) z-5VCk;*HC5r%}8#r3yuB^X}TLeT%Zqsdg*dp-i7Lo@=mf;KV~E9v%Ev^WMjj!2;$Q z(JN)pqL=nnD|vHXteH*6CQ4N>O|b(}ACCR{fmFG$gFe;``7`mey^~iS?RcW#&}g-4 zjysvS^UrX*-o@(F?)0?aSp(I}@N!Aif5k2NA?cg5 zAxB?&lxh1pZpnbk! zHrH5@2^SuNsbvOWbh(j7pLKPa=AV4bIaiue2y#YaaN5mR)N79EL zbYHpVo~B!2d1AU^jqoie z=%K~2DIk@Y!g(TUC%zh0kL7`S>7<5++SF-jK6Iw0=FJ+~dQf%ABzpxmgj7z)^2%JD zSalgBgvsv7six8snzxMj4-Ny8b;V;(a>F>R`HS zCD>e{*6oPvoV(Ubs;Td7wq~pJUe>I;z;2ptcc-Sv9d$4=44SlV)_Sdkd~!EtoKFJE zqpLkW+#7+0)yG+{UV2JcQr`io=#&d>CmMc(1zhZ){INH(sU&-RBfqLvHSeyd{kl|X zN$LqPm^3ykrfin_Yb7* zY46wt(@J5AE-s7pMAL>^)=yxrTWWFz3_!uSj5qH1k0q@O)cD{N&%2K4PR!Z`>R7H{1R^$X2KRap>sAn7PvBZciD!?(I%H@axZhyN%Yf zj%dmw+gxU-a(Bv2ixweL;Gls8EVN{~^nif7TF71DcI*#z(k45MT(C zSgx?>#60y+j&ceh-5LqN1^J6w2Q=F3#^k`t3^0y_TU#O>!p6=?QHZU>W6v^~#r%&!IB5V}&0QtBb> zdWXVsnp2ptgc|qkBD`tBQ(qTbkiy6|HsZ8RZLsp58X@x@GLo)e3=(C`>LW>sRdJp( znoI^2$Vh&A?4$pL8~mImQeKuvkiV1?=KV7DCR!SloJjIp`h>(#FYfYC`P5uW*SXR* zN(y~%6jMhjLNRc5k{~5;p)#jR)vCJWXnbMiR^C?1Iz7jet@N7ErdT|U!4!WQH6Zr1 z;;y@muwk|QqB}!bNx)SKT{^XB64l2{%TcqF?BgBXq*J&y#Si+dYE*nT?;!PiT3M>P|WDNJi8~6&hdH6`mAG#hQxMmZmgrC*?k1r%1wf` zP)_nwNzGU{*IbW@cU033oy9q~hDm>#J)0@ELK`#7w1yP2N{>G18blm|Ht5r z_>fZUOj1dk=;9W;7ikN%BXRQy$k<*{rZ7%qVAJ}+C*Kv439~DYF9?zGp7+ggPG)>a zIyAsu8MH4ZGZ?A&$bnMutzyn|BaxU!HF+4vJDpgcN2=ZCZTXo)ir|gDidQhnrO+4z z-yy$zT0pK@vvMJneEkKjD}1#( z6~qO-(qTDC*~(2=Y*l1Zi17?kGR?KL)}%6>C5Y8t$4|!7yy7@t$L;1=5yR^A?@<-> zSu+n+WohvRHBGwYha?F{`?bLR!!BnKWtLTdK)C9MHG*9c5Fy@I=pG;39Nb${Q{@Dqc8}m_ZQf zI&$y6`+b=@FQUsxd}ENY*jZ3Ya+9bVI~%Eu@f?G!aHoc?Uk@4E5u>i%%UWmn66sh+ zf-*hn>PTP{Y_q~_si8a%T)LA8?twliWFxM2%1hqigZl118SKaV#!B&A`{0yM4INhR zD|bYlBYmBX>yD$Y-Q^lRn`Vl-*2|96sV8cVgtYvKCfMMyY!BYMSx#QpURUVsv8b=V z$SvLyf|GT<>5+Bpo>H(`{|-6HEqoITVd(Dw7=RmcG+?wgx<^MQr(akWcTm?nb(cr+ zr)d4z*Gn6eTE*jWDMo&`mw~nAL^ftkorXP&OLp3;NV&!N9#vF}ugUjY=m7;9xM`LNCV@9Ea-e-RBmRH9$ zdGH5EkFs7s#d)iidoRa9&nG`sR%+Mcghgj))pk?%H-RhIg5ifp8U;&c=tRXvT!ZCC zt0#mt7<$C_6Wc;>0vL#bs1nqcOFU(93p7h}M{&-Td!^w`N|tQR7K5~wKfY62ij*~) zcYX){&F!%jq}F#IQN1r}Om2z+C=TwMZrTzGkvRdIP^5zXa{VAyzgHDgqU ze%2<1QMWym)`8K%5t-9{YjR1p6*v~-TP7H9;>d9$CS+-sEUP1UO(%W$1&z8CF;4`G zhXaEoXi6tC0245X3b~Lc(Qi>xR5-(MK=^~zGi?!6h~U?StEGoorgxh4g8LM5=jLsn zMu4zpInoG`@lsCFQJNj?WxgSJ1|=!MdAlarKaIwxylH+g=>jxvI51Q&R3NO((T z7?P8KO&2ul25@DSdMtA#y`qjrC60fEF+ONd;--v@bT`1EUVNoW_lR2kC0Udz2tv#> zl(5lJbNE3W^FC|&j}{py$mLTAg^E##BPsZWbo6`oawl^IQ^~kqx=2?Mzyg5Ckcz30 zX0&+x=xR&ihVb-wMtDFQ$%&N)mw5R;hZQzDMv<0zfe%J_!53gwCr+i7i(;XK&Vzkc zR~)N)^>ju zo%0t|_cVF2J|nqO z@o9S(m`Sn8i2<{Qs^?ULiFw;No_VO3M~O5MfB=h`po&?54E{u&N>`PVD0R9Pi5j(I z##w$KNJ+AIO2t=kR+x0wX&EdCj_T-A0l8<{If2aBoWE%-KgVxT%AW*< zh~Bi3nyHoaXG$Damd+%Sz9ed`6*nK(j!dR)YSS8@1eCc}e^Y0V$r(|pCVocrmM$o5 zAV-p(nJ%)Yp#>0C3VNuF$&)-Mam`qO{p6Nn$TZlgmAI&-Yr3a%Q#%G&pt-pp>8K^+ zSZC_Ra&@(rBO*_eDWzG-rXO>i498JQD01}}oc4K^{gSDcU;qP0SamD$t2RDW9gTX;h}bWWuuLm zK+<_cN98?KxsG*6fO7~_qR54Avz!V8t%fE5qN*P zsHmYjjoBffoF^-#g@1g8cMO-30qds0X_Z1rngGgK;8klj=At=Tg&l>7bm^LYv6>C$ zRNP8h&)J8j#jMib`XOT>tT-1Bt`Xl>Z?H81O-d4^*7_W%TIu!!4tcBwfux{Ie6nu}+$ zNyMj|HF3UpQQg{~{>D_{`m^{~LW;G3|H-1q8M%`BY}i^<**Jb++p^Q?unXgewOV|? zS+tWXvlKTkuF8fKy1N?Jvgrv$YdUyiBr@_7KpJE|eG6i5tEFQX8N^apTERP8NwNwX zOS^h9DuT9*7Gz_oMI_pMrpC1ygtiHrvSBJl>UwKf=cPJPo4t!LXcD}*YI#m6u}j;a zlHw%Xvwuq4d24Hy=>!+4i%8|zRs9)+J@b~h46L}Qdy)KWf1HyO4<){$H(;`=WyIKk zIffnF>yeN$az%KgPWnw2XNGNAomv;Knt7?WYPShCf(19LGL~+$_r9yDaJ@K3Kj>S< zBDm6srC>U-I4YqRH(}-on@$&vIJ~qSsKa;Kykz==7Tlvcslw9Iu>e_Pz-JkUW=+Ve zy>Nn*xb#x%n^&rJzTv4=uJpsX`Z?4UYA$=F?E$XRNOUUcT?RQ{i(+t*YQy)txO1tQ zUuLfyRg-Im54x13^9lpe0B=UDYe2SGey_?q03lXayY?J zLu|ZwP1?GIE)2;7N;?2NEl{dtR?CSR*1vgZiVancAIx%8D~xwHg$PUiu})TW|BIJr&Y_zS2TBBH(JLwz+iZq z=Znuoy3isES8@t4G-<%?6_U|>D-%4Vt252?C0WkP&j=ePZXC%I6>;nNDqiViErpCQ z+(BtPGrKXv{m8=y{5xrFAbzv!7%=vmOA_?XNx(>I!D8@y6)H;D;# z%`9uuUh2w4`YZjb3}JXf%$*F;wj?@m$eQR{u{*1P_B53}dQG$`8?ZsAA{1^s*jS9L zEh_-fcx_%K?U3OVz5)l8Jt7?~$|_4p)H>~tL>r&|bkhE*K|aix_B(3=OVgtq*;Slo zD;J`=N7o3Hlsr4lwU^NQIjC+8!L(eStX!4n=y)h=!tGkrfpujMm(!@MoSOI4A=G_i zYOf#+og`hLmxiS8l!cP#({P=9!==zeH`w4<(aEg3jCxLee5|aOyTtmRNCwv5S6xAi z*=^0(d-`s`;k&uUx@MBTOL+7#u|W-e3Wj*NOyg>3*kw$81q_^etmBC!T7a#$V7ZMfI2KPEMYHUfrX(U0YtFXVRAxT7M8euW<$q~rt6sdVExo{8DYpNq8R{C1&PhTwgD+$WBC1k}Am{-y`T;vKed zw5_~kcP=4aBS~W9F@{*~9>}k$Z!A2G0Y$j4;n~!C7XCuGwS9hLeeO-_o7UQ_&S=Gk zzRtl;z7-zPfnM$qw5hh|*Fp)2--w;uRlBF$>dKlBCD83oKSSb!Pun5+=jF{yo1Rpd4n8~vFfwHYi1d>QLX$#04BO~PujoD zygO#55h~CXIy|fXi=Y_uJ5P1Z8aGW}sJIwwoH0Y+k zz?!$a)M{(klEB5#iox+dzpxu!c;$`h`+i6MLC;h=t|x^0bNcau59z7LcTeB@FI0$3 zJovjF_+ImF7U=7ztM{JzEd5o#bIR2FQ`qvEt4?e{8LsMNT+e_J_IZl;n;SN+8fxyB z!dKqA7f;>keyUG;`(h-x)6V`fDt>5GnJx#&D=)jKec8;p#Uusy{Q&WxfIxx+4HA5S zFyTRl4@4|1m{8zAi3bZdEO1c74U7&U4%`S);Kq(6BNhl5@#M;tB^jnP8MEcYl`s{~ z#7MFr$&Md!vV>?eCr6DpXrkme(r81TN@ard`BdW1qBNsAg-R7CMXeT9N~Os4Bv`Fo ze_oY|)-1@SC!31xs1xZ|f^U!3REw0MMY3ccR?N7z;?2E+qZ%v`K=ES6jU7LR99i;Y z%9Sl&#++I6X3m{2_nir}tU;l7OWJ*z^rFJRaIq2|47#D)q_0`XDtBw9DcV_g{Mg>3TEi!xa-=Uw1 zceyjTe2liex^B-jH%r;j+xFKeFNcWoNj&)Eu^I4Hs#KO&?%4B(@HLw zyt=8ux)zE_HlBJaOe(xQjBu!rN(+mw*~+sny@>w8kh$>)bP&btR;&#n7+>?Qzq*#n zuOl+^9E7-2KXrmjXrk-X!kJhI0Yx76`B{Com)xeU##u*BGU^KmWsjEcZB zH{XOaPC4hKv(Cy)Olw8~Z&VLJJ=0{Xy77VnbE_MlEV8@;_Y3g5z7ABeyRM4jGDjQN z^K&^!1q4gV8nJuvM86na@=Gz1R0=~YGo`J|*ZnxX&@Up#T1!k4MLjFYKw}*e(FOSm zHBTdbB}+{l&x3E(pU|Wc)=JYXP)pdZLUY$aN&Qi`_snb5H&-RSPeE#r-P6@XTavLl zN^PZ;)kmeR)ZI_tC9Sp?yH^(_P8Y~!|6?ir>9m;Jw(W=A9`b9x?;cKTz!1JtIJS=l3h;0X ztyS>FQyk4O$tizUM8osNu1psvTn|+~3GSL#if823;ULG}E9RUtS3AZ{rRuG?{i4TxI><+1cfd^PD_S-%hpWLe(wZ@i84$J;TXA(pTwX zr>-yZVwFam)SsivPAFSpY`tN?brSFFz^YZwZ+0`)n_%q2$B&iN*Pz*XXeys#QN4!7 zGs<}mb{_&?)ZA7;{Z%h*#EKZ}4EU9>X^=(5aUg}5f;SDaMP_Kp9|T#&!J?_mKN%qo z+JdIC{aFrY+cQ*)=0-al1^o$qnW~u#f5;O^O(#m6>fhGzb}?z$1xi%;5yViJJsl-+ zN<2d1u}YIdj8s4c0yth6#W+SXZYEpLBVUzBIK|5O@O0MWSHlo@wO)-6XyXb@z=T+| z>-~^w=fj!`7X&TdEYVlZi(3sx2s_^x2wrvT)@~N3sv|jXb7Q($8#@Fu5lUx|Ut<<0 z?PE6~QITb-y4IJfr7sN9k%oiJVcKl>LR#(6mdKLU<;eE6@4a%C&jJxGBju;)ph}Uu zoEYk~Ww}LSD})v7-+uPgoH<5MXRXoDCG!NoUw!L(9o!)r3)e~t+46R&>*Y92*GU`w z@=umBWi?&rBMPSdvQ!Zn00qjpPk#2ZjCk^+DpSWQxtwyFm@_9ccbPORG7O6Ls}V7I z#7IxJF`E?a7T|;_uw+uxgoG(yRvI+5XSVB@=+T`WC92C~)^3T4@?ih&TE zCOGE;$!RH$UmJW=W^1C42;t4r&600c~J1Lg#M?&1;l9k3nY6ba{!ok#N zRmMC_#**iuP&$)~g$pQMCZbdD_%u*F{2A?{Wwyb|E3KWfSK}1qQjD^7nJvU>%-rC%rvSGA!)|7tOIH;o%539xH+ct&vME)5qs7h2VaBdn>ja^iIS!>N$XFE&= z%C?>^WM|a8D@;LZ?m_D{?On}B+w*`^oTqhTLKWD-r~*<#-+gZ9{MxjXMF0Vi#c+l- zY{uK{XmXCU3VCt*BW1}pmh)AoU16F?fN3(T`x2~?Qi~NT<>+V370YN2Y}Lt1P&AYx zWse(mm(u9*V25MfhK_hQL`_dz!ObjbH+xWxwK!jLWo|J46{0_02d`~qFMTC@$x2=v4YFPkEGe;eZlVSYF!|sE zK(V@$id{|YxnwoY65g@Mw&kI4UA(xnl24@yHb?}(xM5P4+SJJV@rdsUpo@-j%TA{-##m&kilV^S6R63i< z@`W-U-(1LA7n56obm}L?8`^AD6vhHRFSee_;&hi1U!CUc1{oMcJ`&S#Tnj6_UM zMSLy_wdvF+M>%B6?ZU_Duffxnsf|zq=A>r&)x^#yl6m!8a{{{324$&$S?p_^8~RJ~ zWb@0k?8kV9t=-V=8;sHDbME+6oD@Frj+cI~E>A6++kSGPeH&|}Q@q6`_1?IZYIG*% z8<$(J@3)hk>af_`%^*kg>$+t`vdYlTi7TxF`91O!|M9+oR;Kvc{9Kmf=BcpF89if7 z#H5tCiP3^Py^zT>DWx~Rl*~K2*9brRQgw3@7eC9X(ez^n5CD>(()dLc^ zZ}7bNyH!I?JcE49jH)WvS^0bj0UgtEtlEsVx}Bjz^rK!zYscYh!P-(g`uKl2^~$4T zYrLysIjRe@ep@U38>H%kmBAylj(Vrh0zYbTrn_T6+mIwza{wumn7%c(OL~lN!21wgTil<@94t`+J(@1rxu`xS6&FKsF) zDLS~S0K3|Al^u&bBFrJZVILHmu*EAI6-%cFY%1An3lHnM5F!;S)GX-(xFPhK_d7fw zlO3{4qv;c=s?ey|%d&7Y4j|eqH|)NeTd`N$z^Hp3C;hR%-RrQ&IW*?OJ)k2GX5+G3 zL6h$sz)* zznGe|fQvWE`ko9V93oqzhk?2WQaa=FJVx>;cUnPTx};5ZBXcznswGz|n4>|eC)>EC%0mpS#E;4y`(Z;=Nw=A5K_3IOPoc)! zS%_JpBkCFiya&9a*Ru~Zxvo`Pr@O4bGBKtP(nF8>7Rtmca?-1dC;%@q z$yfs$KEAs20uj;{Qj6qxMJrxSX4)j45EU>gPxLbOf zG$f@r{L2+or$WS}7vxR9LrbK)xF7vwI_g+Pa-l#binGD|7oF2P0F;j8z(9l}kmB?v zOzbVq!$r;%u)WmBi)_xa3oIght6Y(+Nm4trbIF#WsQenpg1a;-0v$ukJ@hM2naLW) z44|{jPUSH@m=r~%>@|0bIk4*uhRA^lD9sJ!P{|0(;oH296sn|*w)K=MJWLeqaYk75 zt6*fyBC$LY?HR-hlXVnI%ls|_DHn|j!1l~7lxnSDM7j!(tX^h%$!X6tgXKcNGAN%j?_z^>@QSWQd4!f z{nNmotCSa|Fsd}dJC)GvY@an^s4qOBAN8CYv?Z-eQ?&9r1{IFLyG9TU$_~*t7^Ag& z1tG4a7_eg162i=@95BU_fl5VKN=?&v1X5tUS8>(7`^Zo4?4AoXQ3+&2-s-!HT}>Jr zKOSRPTnSbs?YbEKT~^nqru|4DG-RViJ=VD~R-HnP`r#lV1<_*?L@V^F=4zbP0g+$* zRqkBVPI_1|wYOI4S9^6oQmskAny6?+v-EjcrE?l5?9n7?NxPIAZaZ0Ld_<$oS$j<_ z#LAp$Y$*@>ud9{My(u7eg*L$3wEu#sY&|!?JVy+o*hPAgL#jGJfz(M&*uXW(v7$y? zaoL6C!-`X{g#lP}BH03^(3F};&(uwX1X>?$*m-QkThr1itRnstq(D_Z8G|djg-V+u zH%k*Y)iFxajZRUmm_vayxk=iIb-+G^Mu+Xzk7ZFk3fuQ%Brft?yu2T3wZ*&*%0@C8 zRjt>~to|tUtj)YMBoX7-f21jBOuDw)3F~ao_w-Tftk2lBzCIzY;PkyNjV(W29>~;B z{7Ss5g4c68+&nxwHoY=}xB(Ls-2E-dGeVo({XCiMU8^0K!mC@ksm1QG!R`{n)D@C` zOf~!b8?YrldW%h=>sW1_TJS_vA+2E9l|v@|L^%9byFIofdQl~UsMn+^6yD0q{7oP; z-xKMoS~b$sT)wRZE!b7syQ^L3VqO#O#lxh)w7lSF3fSYDqFAlSOAWH5ML6=+HSi_J zmc?4o%LsdPnAc*@cuX|?YQmdEyVz;s_vJBX^H%dK+5`?3)Z^bbCP_7`xL4#q8`4|j z{ncSyokscd&(l1s00m2yeLl+L+ek98l$6NT)t@sPz+tJY?UPvl@V^<;!7v0r_i0`z zvn{EFSzW!RD*nCdy-pIvVMMYs`r+Lyax=XVz(B^Fwte8a+}vU0S>5%|!~rl4HnR7P zS&+@+TUM$F1zzscz~z$VP&LF)rAcdfiR8#ro1Mft;whMwp%I*A>SaS%>dyFh))D<; zN#r-Y-9r6^<8nU1^K;(eoig*(<1h}##N0m2Lrq00qEwzk61Lx7lw?`_kZZ=&wt3Ym zmR}t%*M0Rf_k^=@V%jdgwrZPR(>=~i-BwE$6<9 zt+H-*Ru^fDM<&CM|_^VJ6t%#Kc=Z;oXCOO(4O%Eq!m}f-`Eh9pLEj9l*Wn zuc>6kO&_qn%OrL>*utV91+Oh~yQ=Z-DNSmDuGw&{MP1QWW}H@K<~X`VMtx+BNXA(h z#->j?6k7JhyPfWjUPZNCATXq;nbnd6980HMwT%?H2-#6~{AIQ=8vxw6GyLp%w9sQj zzJ)bDQ5nc9{9TrW=pfIYfe=mQHu96hVUg=;hvd_N;yMB0n!adix9)J1IsjbhwBOQ`egA1Y(GYSR*-I33OYHtc#zO)92C6ywTuWk8v( z+jP?gFEl>uznz*V>xAajAXepLxaCFdc6?^>CG+*&3Ss&1b?_A1H=7G)IrrcI zt3e6BRf?wcAQSXP&plz`kHp@~tnE$K-aK)}722D(>NMLuqvCo3^f(Nh@C0(4$j~Df z_T{dwF`w8g=Sef8$cpUsXj5UzWn)N&8hj4z3s2hsizYX-XTvr2S(c*SD>4yFEHEy>ST7q~c&htPs&f$Ra`d;)iiW&3uu6E;TB&Z92>j5rrJ@z zW0S8EQAQd$MO@9>^Y2dgH?knebqn?Wtl{=X^jhrmoVfMgGK7+CV&)zy&3LvZFT2iO z-9vhhzs1pY5EIu$nvUDm1T=5_3Kg$qgukIGZCN}!*Fbvn$ZdAmyJf^D!=*%P!XcVM zCEJ~A%Hi(Vxgw0WB<1Ntc?egqVbz)y-E|*{fP>Zf(^t8?w`_24&(RuSJcib(CGc>s zTIf}B6(zexk(@mRWb(D+@A|IPv91h$L~sbXoEuL6#8&1So3sDAJ@#mojbY^eNP+Qm0a_ zYV|7CtXggUjL8*eO_L9U@{H*4X2+QyL*`7VbKpm`CU>?qD7S9Qv>Uy?{5e;x&5B{U zUL@Jju-&+BS&A)tkZ)nXgB|{}#psge%*Z7j-+ipM@?wZ}JF6UvSLA8XehZTR%edm{ zoMc%`4Cy%b!vd2r*S^g8wM?3%cdovDGk9^_cvJ4)-P5gckM`a_5I#D@cPLuvm_q);Aq*IC18EqjrS5{Cnd-p zQ2#+!UR?{8C0}FmwX~mdh&A|JVxm28Lj+ohI3kH9ns_3LDXM6cVD^Q_nr9f|l$MOx z#rTzltzD>Ijq#0j<8kTDcN<*?=0%%neKcZf$lb-eOH^YN>aa3i>0ZF&dZBnZ1?eqk(xoNGhkl z!3v>=SPHseVQR(cC2FI7$t#0&qIu-4YQ`E`PSXXY8GQsvK-7xSN;@sJ)ml5Ebqn1E zrKk!5))#z|eVZ3&Zy88zw%)GUpHJjPM__HDe%Y&=9j;3yk?kUSETj`E_UnObq1P{3 z%enYgqG85LrmKKXdR?5eDyy4!Se|Q{u&~YbXRe9`=`nS{G7PMQTo$JhzsQ<&p$Os>l6X^qjx5gshv*Fx@G=h<@YsUN^wgNtdDvy#o&r6|W;=Bwm|crD+3`~5fI zBD(9|!-sZ@b$7MmJ2&3Gf<5Y`jf-7$xri&w9^)LwZ0C5+RVKA(UB4W0rj~QGv1>#R zt@yqBc}n5wxkA0|xZ2X&@3}vdtt8KuJ}oeEQYU^l#upQB{Nt*wskVU2X<0X;$V;B( zcLd%x`QcU)M)SwXNqF?ha!tJZ#Xo|)vd8CJoUy$8r7U;eyN3?3^a!`5*V3p4rMtk= z^M(C8e`L43*xk-i?QxThLIXO{apyT9vsZCE!m803?mowgT%meqI+LBI2QeT);6fg>{!?2rS#(TeOmAo)`FB&nhcPUIx58tOc;IKtQ@k?O;cBDi4Mel)j zQ`fGFhr}AK%RyR{mDhHNE(&Jwg+QDkTttJw!trY`XH*m$2{*ou4eO3|;}INJSH<_N zEkOIa+Z~mYyH6Q0CNgTx1feFSFB-^4;j13MR(2=aZPIwe;>!}-;va8i&P-%^{Xhj) z0Id@8vX{R6WmIAaruHpRS$>>Z6!Vxty(Dstqcqa%P&Y~0xokc2TbjQDQ$N^2utkz& zogBI6MQCQGLTy9h;QACL18NMJ;9Jr*U$meibtaUVlg}~57#{PKEo>)DXX~0cNFP>h zjOG$$Hs?ndfYz*m+^H7;t%yam{g8{rLS%-%wwhV4W^mB!S~P9cO$0epgZML4KArZy z39<~FZrhqo7HKsUQnX{FJXP&1D9drhQi5vQBjNt3ITR+bos_cYBqM2&0jL0&PJJp= zdr8Whb%m1={A2_JX)wl+X@M0r)fQdKGKO}MYlCuP{r1^DbaIJ*O+)>dc_w02$<1?I z>q{3kGeW?4<}s`yajr zRIho7tgJ12+cIYxsJIqYpQ+(w3)|>Y9{VsT`#ZaWS2WPZZ zCoS{y(#6^ehvh0I+~E0MX@1DK7jsfSvx_m{oz=c;d?Qe$gI-Zm2#H>8(A3!2J@pnS zcoG$^6yrv}|1>jxSP&$6=OK}=Scb;$-Nmc562{p|`RNksU;5Q1vMA3xvJ zGRhUWd4M!1qkvSmB9jLZcFgGzt}$$9T0DM^u$~c65TJ zT&iZGHI8PZ8Cti_CMlk)&?GPFC4O^|!mpn%o(d zlwy2E?0JW|K|RJYU!T5Sq_<2ijT^g*qtk831!`pu*{j*~qpW<_``{{%QGO&})DV@k*XT$e=MWbmtsjaV9`;P1 z&5@1(GGK05*6#66@m*BJQP7GdP?J%a@x>oLmCf1-U4D&Nw~^Do!59Gkmaf>2$fz6E zE!)`v-RBsdOSPEUkc6{ZUB>HelE}P1Et$`2?5DNm=EAm6F_^$NdM@ z73f3crgOvm_am{o-j z?a5G4IpP#f*G>guGD(vsah9Al;Ut<*6zX8l9F?F2ON6WyDh1ofKwAFf;^$Szoe`oX zuA&UmQxg^;H$h-oq2g|+Ot;Y31==7JHXME>S0HksCE6kw(rHt4HIu>0?Ivt7?rC_>Are#r&QI!X#p3eo?T^?E+=AW>rV;P2? z3Zl=N}TApD$0@^t)mx(6>V$MpU zVtg?j;;~_M1zM$<-TKkxP)R4#9h0V2m|50|_2?u#nqOcL<<7Y#5P8mLgxNMFUu5-U z<{_I72`EAlUP~S$Z`vK7RayyxThtj5ex^*@Atv3RolDe&GA&+krd^93QD=^z5V4g6 z0{)^yC1k^(pQr$%+X-Q3C6LL%otD*}5W?1Xn%rNCX!dy+26`f=#AxG$-d-Z7B(lT+ zhyZ(@DVk!%7yToei5q!}=^S6qpzhU)YTu|0W0bw)k0wa@mB~v6oV?jw zgQBRg$($N8r8#bu(>dlj_M3hY3CSU%GZv%^mD7*brc{F6_xR^(=@rN=l2-{N5^8Bf z!I4^aDoHx3z+EBGDIt)4AJBnOenu&UF^BEtzyzeJxQ;7S=xVlpBS^+xPWeZe{r;f% z^h7oQC7j0ZCv|ix82x<)WV~+NvY%P@Kou8jB9M0Kiz>2E->14&ysOBBl465JA z0-s2z8M$sP*CIt(uBEJU=?>}IyI|z|ahac@YlgWGAF&FZQd8`lN4kaPXfY0P1l{Bb zCzIZdp%spWUgTt@?YqruDMlp0o>g2OB|0YAqd`|s86EzR>OvZ)ulfEg1RgBm-dB*F zYPHhP^c)+ZcAx1zTDw&x&$15IJ{jAPEM}P+OnJIH4O{_aZNVreMu@o;YC?qfvMTh~@E*Mc6evTlifW6!!Q^O4v# zY9IBGQ*Z9)0=D3IE*}goE)`{*=vAbrt_|i=6Ymyof>P&89$@eptbJzN8v$Yu`mgvP zuW6N4?26k%&YjDN7$em#7?R!fy&>_9W3fW+nH|fuYGUWcV54Q}BN-c88DV7V?P~x@ zK(@aUW+--Dj)Kl$9nT(_QvAeZ)UGLZQY3|;=toXhSYGXA(#qbhl;> zD5$gwN&)Pj^)4}*x+mpo9h8bD>hS3b;-Af$Z3q@j$d%s!8z}PrsqFF-M2>M0xHp5>5Oar_2hU+Qk2#;a{D<&eb=u=_|&eDi8ynl3D8QFc$;GV!$Xd6A!a`ZW}58@Xuyyw{aVR%@6o4 z@N$uza!RK9S>}cu=-}z%q7rJzb}3b^vhOaksamjAVy(UM{vh9`vGY2xw9c`)z2a0d z440YG5k~RtQfN0T+Y^grVcxT8z43CM-p(+oDK{o6pDw>xlX%#JQx@uO#)?%H)Z}wSpNGp}VhT1i<>P~VXf=SHP%5n`BSvGf;nZ-1^ zp3}lou3Hi_Pp@aMx(?FmCMbTfq&Te^>uBP9UHdwutu`5V&XLT@EaEiBqHSRFwqlV+ z^L$kdtTAHk2&MMEPXhj2&th2-QksMakGvu-Fc0L;Ql5!&3sEMD^WpSW+OxX|E)Lu6 zT-E2aI-z|W9Db!0$M|xs%Hk!?^g2Tr45!>_Mj5>QcJEi&Q)64KmeKW}-f$*fGA<&v zNc;2PMjZDMSuaDLRSzfQy_^ESF)Q|K68AK0%Ox&q*o}VlTKnS-vN7d_k!}+rWE=GG zIdhI3^i*ab!gaD>hcdASTirrknCW9lqxAmY$J(;h|hB2sZT@m^3X4kV(ik-MjvZ7$` za3k!!;Bl`$F@uY>=~A(PQ)NOBvYz^!BkxgYzF||AbbE=k$TFzjJrl$W45pLA9#kK8?YR`+5<7P+z7rcGNRuQ*~Ey_{KMIk(Oo zul1fnC-mrdqX#CaS}@r_g4_^vF~P3X?0kg zYO>lk)p2x7QLqWm@~Z9m<%Sq({Uz9i$DVuufzTkK`FAI-H-*7f!4c|LR!`00msS!uy{LS0!}PEZCA@5Owr|lkN7VFRxGM zKb9~Om-~gl-meHYK3}qp?^$yad7PU8l@FRmr6`HJFD z8XaH?XCqd1n_jH+wkY0amaG@|1P*JcM`DI=4gNvz>yI%b`v}QNe2Wt%zd}v1-)YBbv%)qsO2brA2T_aLHTo%TjY701*SOfLwdQ_;-ngwVARrwSm)ut(p{-h|Br_`n;Cn6o1^{Y#dVat+LDN$op zv=9|yO$$>kNsu8=`UIPHY}BY{`)0h$v@Y41h2L_7Dw46?#AM}K464-Q)5vzcmK;cx z^4!N;<96g*b*J8=T^COl9a!w=kEM+gy<3>;=gz3d4#tbSq3*eQWzw#knJdwYy~E~2 z%J8XY=O58p6;82)fB@IAXV<=+dw1{O!G{+=o_u-p=h3HEzn*>j?!Tc=k8jrLMCrbj zqjn0r{%*EHFMBO8#pq(mHrMF7YPI8%TJW{hej1Q81hZ0(IjJJtOE3q^vT!Qm{6o+( z5dHr0OE?KvqKdY(Zaa)V+c13YF}O^NiNXu(f=Nf6Abd_YrCKZsEYbi3@y4@?dFU4GlFqAla zu&p#-EbgT!Hxn($KEM3WO1}DYb3V7^BXhsyPK-%W3DMl}G#TNXbI3I7%qs%-IPKKa zPeBb;)KN(#FVHv*6*Sc?9i1{$CrzX<(ntftvdRwm+bBgYSv@jRN+r`Qr`cX26j9-P z^DI%?_^hxaUU>!0I6UDBaH)u-Z7f*ToCT9nYHL$7wk)A))d6#Wmy z(N_}D)itifqyv{m$X45S*&UZ`6}iL!X4cO--5ssAn<_O>$W{O9i@r%2_SfGf0i7vd zNnLIDS~^RFD=c_Du6Nac@4ORNGsm28M*D!;xY%x6t@YWacGV20bvG^5=bwQNTIivP zzHZM2Yb*<6#N33KNQ-0^ci=9ytvEQ2NX|OdKSe$j&mgM~TUDv$6q3SdPd53(#p<$l z!jcmVPOF(W8!E{%_nma@tBG70YI;?58>*7u(mJ%bm&VgL>E6QXZ~{^Obx2s>rPJbs z>*f1DOY;&LWz5t?wM$ivE!{)IZ2~#OfEB}BOv2A@9B;N=0}}A8Q7?S`?31(IeLC9@ z3-eKcm6q>smr?Co=bH+f?cTf}hOBVj9tW&a#x*Y}2J4FM-uv&t5C3N}bzgq?OQSb5 zch1fJSnTEP9a}{hMSRt1&MAvdOW&u3U*A5Hm$BQTD{DJoY~*< z@}oGNvB^eBGl~uKpfOI#o+P%$=`%!NsJrmy_0U1a^ z4$^2>Djxu?rZyaLa8L$IpSB`MuPR-vj!azP@$N@9i{)%;4Lafbekc{e_3DvXY|;Y1 zRkn-Rv520L%bd)WGK|TrGYcCa8x>eLRaPiD2Sm*0l#(U~I;nEI1lcif*{J7LY>^&h zn%Eo%ATCj9Obr7b{KR6pBC;uM(nKNu>@>O$u`68`>>T7O`5+SkikO)s-@8sZxsa`r zj^{+510jbvN;<|$qfDhGW#g5e=tOgKL{vVzxXWcO>yUFp<9^h~$6rFE0x=)~Au*a! zjc(LaZn{rLu8GijN^V(Pj3ws02|6dXGID#=C%Cr#`O-A*vq5sRoV#cRuUPgjq0A!} z%PzT7bJC2bSX(3XjJdkd97|bcV&=a_nHPgL)uH*Tru9~u%#{A_RXfe!FrjqADK_e= z;i8+IB4*7@1#_tj)Fvw_r^e3>XMH|-)lnO{H6xNWsaR{7-a1JbTiLW;KZ4+n5IDcA zy0UgIl_keaNYgKt4y(>QV)df>#`VE zN*^w|Q>N~;U??AR(%c#mi~l2;hZxjZ%GQlrBMELgO=whd6;+}qykft|SiG^x&R#q9 z(YK;mHb5%&E?|c|?{=v;CV|ezH@2pi@?%kcvJtvR1xY;c6NA#UzrB z%xP9!EUn7wSx+WPw+z&xW#bu8yH)ULXxZF2_d?rW&J$&fBIgACH(O8E_OXWZ?|LbD z;V)`9VJ^u51x}k{6|eY@WVA1H$pNfJeJV>MI^p?-F~)0Zuz?3GTZ92Nd!bwm z29x_;*CJDl5LS@uin-cXPREw!{Vdo3MkV9D^*ADw)m{mP8=<09zWzliWm-gJ_8nKk zQgrcqnE*6>~tzUExYA>LQ)3#EKBkiI*)R$_w&y|fch}UVOG8>6+tT~={h0LqL z4jbY}kyq*|-}b`o(=k?uLcu&{)Hh&V-Iv0oyrF!X>#I*Rpqr)qSUNq`!4jd+*Oif#YMpq*38(gEp&U&9btHa zGgS~h)R*PHl<+0U^ z@5v_7Adu?-eH&x#$<80b?Rz^}-Wx_0a#Jlx<<+|CxMa@}W?;4g1 zl6O6upY$J>5nNpK`-zsnYwdT)>o)e>WS-<)-rE}egUcX>t1jz+rQ*!0z9NcRQtxTt z1|+`b>cA@E{r)f4a0R~(EZW2^bTF>Sb_?Q&@9De*I1~xf{e#V2=C7B2#U%=u=^ehgCJ0wvW)LWa9{dD_)yBl^2MaWEA=K2@$lua zV8ynOYw*^pG`tK6X=(;*YTjaSpm^??3~h$4Fu~45fd=dkC5Z=k5(`gMbWf~ZWFtUTevW$pze~2i&FBCn+R-=j)nCA%F!OM z_!9of6mRj?5{=&sF6vw&$7;*js1D`&jkAdH^z<)_v<&2`CTjM~$o?*=aOmZpk8A8t z3o*mneDK+*i^7^|`^1lTq_LESPyzi=@iq~X0uP*~OqYDb0qIHV#*yBbkgJgIkqD0! z>#N~}=&AG#(ozwAk|n>?Ea18^gm@wvfzb+0#ELEh(XuYuRB_gDrnbzDWMW_xIkF=+ zD!|+elYH!XhAf#-q#?Hv^AfL|nhYch@$JCM4vC28%r1DkEzD5y@#yF!5$?`R2DsvE z<6?nHmr5&9VguLdq$E&zcG5E^ z&iRg!f8H@G-R>zFFquNCG5OIfk}~0nWSEvvCrNBk%&qYHPwKu16VFiH27?kkN)BNP z^iXc~tU@LItsZevaLfgJx=9AvFE0`6T*6Q~1Fkre(D3eWHLC}i7_T`zD^@PB1_=`$ zn~t&OOLoO<%ps^9fmmr%Ume0=;(&<_R~A(>+`Dq4!1le8^w{@ z_zF5VZ-@fYk__uzdcdMMb3-|lXt*so9d32l@Z;_=Aq&fX$}+a5a6EGp$Ic`N`r#P@JiOoNNQiOgpLwsijsmT|gQlFd$m6+o0j_Ng0vK)t! z3~3QJH)}4FW>{V*JoOSmp=Al-#T-ZMjPNozGl^JK)FR<-8QXFpaR@UA8!S-tr7(5#D*4Gjp%WX~(v^aaw>GFvRVlPObW$l5)>t$S6SMVx z5B@N#4KFi@5Uxn2D?oO$@{H$F)5RG}a{`x-K9$Vg_RR(pO+fwIOcAju)1n%kX>pvfpHwtAZNeMVza4QMX3;9rM%1KnE^%jYe0*!A_ z*X1+@0L3cxU=fy6Y)!))G#@{7MdHaMDzY&YYqbEdHXT+33F|t`6=I0eR_*m+RWm33 zBS85wTwd~9p>(|*)Nd#cvEJ2-QWC7T5kT?k`Z|%k!cqyx?O{OG^QIM571TAgs%06m zUwdsoWfD|{>VJ&( z1sTZ)+tDcxQe~?sS8^m+=S5RiEn)FCZ_ndtB@-{l6huW9dTP>G?dUjNCAWZ1Tbc5< z)b$4+wdA0RKj0SNTy$X^^OAlj_o#7M$(3+@sIe;4wKB0_@QNX63|xH^5_guMf{nhi z)o~Fi;i?J`$?w^slk*mDQCYV?mvmm+bz=C(1~b-G-O==zgKB&CrW$vWtafXC4mNfX zQ|a~gM)PqQ?qyf#2W>TO#?)QVwHWjDKJTj3cv85^6LmQz{I*v*Qw;|6_I=?OJUq4} zFPD8p?I20>X5qDc4);LSD6%pydAnCik@hG3m2-F#3wk@u_q-Kb6^~P+4=ddhCz0xY z3@Wc`b8vALVVA)fwvBds@8m0 zb#Wuus1B8vw&gYqi69R8Og+mp~Z31dfD7jHBPAynds)oRSvSU*?yUe_3F z4~OgWhE*BshIKowXLNvgm&sI#t!zj?bz}VWi*6t@&p4akS5VoQm~+k008#MD?onOR zOBJ()W%|ZQ=PjgH+NAXA85_uh&Cl~4RtqdGl$vC za4C6NbGq1(IeMLXIg3fTB~cFq@$6b}jMV-rm}S+VBg;pB7vHE@?M!o~%0^9JM*_-N zo1GeOiO!ENxtVQN=rnlC{bHF!@+jn{*4D-ncbS+etJ6USxLPvf!=ffg+}O>04V#kV zEW>ajLx*YI&qQZgLO*S6jamQnEP^QbuAvz&VRQ7zTBBk5kIgBHi8X%>@~?p|hZjz4 z>dm2F5Vz>cs73ipA*3~>upocdG=18K3vi}CtLqjEBWY~1CAqicI%YffWj3`;yIHC? znqMJ?$QVo_a^R_XTW?R9Wts+~v&4ZI5U&Nek{ynxUyIDzYFjL2NWmm8meaQB`D_In z=3JQi0NM|8260QdNjn#(Uzmw&1dQqMqX}0&QzjNAmRYwO0Yg_RsW?Wv=u@MWb>=aI z@L3&cu*2R}Q%U}CFt6BD_xf~AFdx;AkFjuuMa;L7?G%Akzcu4c2DyOsX>0|zt6olu zD_F^PH2h+#T=x_jxs|^B=>gSSR7F}e7KW*N`^6EK>|)xKvs=MgFaLJvjUl^PLTz+U zcS37Xse)zhKy$ou4*1B~urr!J1vq<}RgN=5XoDz`j~l4%v239Zl6&qwDYSlusiPy2 zVaR*Q?7PB~MlU$Lw3YI~Mc8)hHM7glwL@lfgK@U=JHt~vcWS(WRdv3RS62i1$YfE4 zco#lHL;AZJQ1^mBX);_45eFVp{FLs*pV^!yIfB#i*0#Nlh`LJ z>Y`vg)%_z?ZF`PDc$_dTDxuk*xt4JlE-h4iFd|P(TUql=nk8QcCLwQn{^?tJByg4 z`Q4*;TC5JT$=(f&JfZ?rK-D$ALsKrgOBDPby#ZOZM}O-2(7S=J`bmY`-0V*#fDmxP znc61O+}V?dZ@gm*p1T^^+bgeGRoQswW9xFgR+&7edJX}-mB-NV#bEW-jZM8Twm|s) z@k&=0L=BwALtE-|y29v4phdH>f2@UFm6cJiP)T&A6?9vviju+4&TV~VurUxwr`lJcEhD)p3@g^>~R#&3mzTFY7myN$9$7J)-4#h0E8&qkMv| zu}=k=i@qvhv1XH^F zSn*{_g(g=j)OZtOOM^B;$~5`2;6R}}WnMIiai~Lx9EAq0n3N>WkqnQ%gsC$qO{4{J zYW=#h=&3sB{1kto=%H%iW|$uw!zj&D!WbcvTP+MhA?UhH|WuSlImdA5B@SZPG6 zF99P}>^G`hv?{Y=wCQ%QW~FkQx{cVduves*Gp~g#F)rY>f@6-RSa$2;#HW8sWtsVP z;o6(OvgIhavS-a?d4pywdoO6LY6BDYeXy}*zHONk=V_W`cH?!g{ZHo2SZl}a8RM>X z8GIwc2nYhWe-A&t{Q30j+rN)LzyAIF`}_Y7V1NP+NMM2cY1LC|nUN=(QD{LGnQbLG zwqRNtt+krYWXaB&wI3oPf6I zAzM$HRi=cf(P`RmkJYKCb!dJkS#fc8N)&l#1y!PxRTlnPs*WmUm!gQVk{W>k2HuKm zuDb5ZYp=fk3apy25qhOzt7T)Ux!R_(s;RJcT^5{WrEZqT)v}x2wPeXF4Q%km zly>DPzrvkIZk&&biP?yLMGU378V+1^!eOXb_{oMgitb5`T5r(z6ij?XqaD_A!~ z0BqP|k4<*jW}kg)xE9a*=t(%=lykboQB0anA^ua^HJ)T{{qwLCS=O;*O|E-w)P=8_ zF@kaFY+JYXnyIhciT5S-+OI~7qJmo2T%n?jdz$pfdShO)|8k^jA&uBZx*5>^3kdk(+Hu3ci zS7++j6>oa(gafCV#222cVfEB@Kl-IX`_7!=`0_^V?cS$1)pRb4x*`1c5}Ut139kSW zuoc=4h`7aKSoPaA&5E310dWWtH{;gcp`djq!B{JxN ziaN3D6Z;4Ty2M$_g{ZTi)b8Y=^yTC;{xRI2;~+*q^||hOwG$!6rnM)VT~IRgYL-TD z*c+d9?KM}kl=G6;m?W{vdJx)9Uur0=?KRO#+EUW~oF+Qd%w}&VgdN^^=QrRDhHs$) z)$_vVk%U=pheVSRhWr#dxcv)cDC?V`RHr9ABJG2JTpPDCQbdt_1|ncc!cO)jj zyagVM;INfl{7Wn&w6VynW|98=i{I<=NH9MRl73DBCL8IfAXarUi$HTrwh)=mFtN^I zB@Cn)Gw00+p>KVjqi4CKNV-_D4O9e?00}k;(vXUDqztqsBX4%FBo4)L`P5|uiId7) zqS9C?J7pp%C?({)(w@$$Tp%@qzPM5GoOz2J_;_kWq%Cw?K9$>ok{ZZ~9u$y$^kfoE z+9};MwRNtnVyLz$xl>himbI)Hc=T7u(#0gDQ1zS+`7}@w`t+fyyeCRYS=S2{)16tv zr!(U?IG(w%nnJD4Q?c?=ekxHYAww!ljabgBx{k1WB%wCz=Fk`F@lUJj-(z7HvU!f~ zvlpqr3Jgfn)T(y1tohA;qVbu=YUpiirdzI(Rhp*5pYY`+txMUWij5AvlwK1_9d}TjvG`}tWMzC#tuK1#gJ2vi8i;kLV zQ|dydAEGe2_=@aiTWY`4>5f5iglv$~IxJ=K@VfUM?n!r3&i+pHVi^1)a52?0xMD4q zeG`mDp$k=bjWC0zGLm642;K(<&Y+7EO>EZmJGu~fjXi=_Sy0)w3aFs9G_J9YZ~UI@ zW$2USMXwuoJ6?QISF%A~CSU>TObm{8s0B{lMp^tgbVjqBIz7@-eM`u^e(%DRT_TT} z8DFffSh&~ydoYpxG#4`iMZbS7nTtiFPuuD=mj=eIh(5Mqvby)OY)!Gunifs|x>>gY zF0Yg8cjN^-tB$h^uXJ5C!N=Zl&pC9i(JJlII7az#_T8mrE!{!!-pSEeIxnN-CDt>E zkgpyj?hI?%U=Oo8o@-jQ&Xk4BtVARS6Tq>re+}$RiuiY0K9_C(m1zUtuxY$AUcRbE zBrQr9Z+wQ8p-Ji4xn+~s0#>v*@w(ViS?tSd_NDf|%^mK_*L&qOwCQ#WS}!!vfWth1)D}oZ`u6 zhyAou;c_Ngk}++x`i7ahUxu`GGTX=WmL;L-Tr>MpdS{(!Ifyf@+~`mQ*`-62)<4(Q<}UWp^PMna zug(zUoxPSnZZYT1Y}F|q7q)f&dZ)!mLcH_T>k8W|d-1JViKEx6Y^P~A1!~GUdm4ge zWf;^wMfiO&y1=Ak;R#jkT~$NI=Oa9sWlI?9H100(3$G29WeCSJ;g{Zj#GFdii_}ho z`$icDxV&s?)+I{$wRWO#<02pfqzixe#4nKZR$k4aazw$APu2@L&-r>gG-kH`S1^(` zt@kW@*}fX;Z6DS%!Af$Wg64tNZ!z8`5pI$gH}x6SoPT}c+4R* zv2|EZH=wq2PZm|bv~7LIZ1k0R;iYt67f`4NMMRWr^JjjZmnxE{X5@1yb3|W?S3U8j zFx1C-p%Z5@)LUp)T@^%EtyV4{6Fh@LS5hZ|&bDI>5=B6lM7S1Vh=qCA7I03Nf?>se@q%{x zvO6|tPz{Gj%XWdbS7t~!er`o~uv0t9gdhVZN4VEnUI>3U#V&lH9ts;wdjL7CMV4oZhGf-b@w4WbtKAyBM3-^VuFRUgfRXRcX75> z^%GBFMuB%FUM#0|TNPIv_hv%arllNdq zreqn2hsXAZa`0 z{$_bBNKCVrU0I`kAK7g21#@|%SqEuHaOoFzcyg)!seqJofKf+|cBOl3MqoULP!y<( zw#krMWPXI?8pJj3|gc%A2+KJ$~hhRF#&Y zw{bkTEzYN-@P-(>iD3-IfKsV0!BItuDN6l0T79~?qys5u2gsT{a-UvRnoRj$q8TYP z_%!h;VciB{0H#HBC(5avT2j|me#f{f8A^@prKDS9srsjoQ<#X8X^5&f zbrgy-pI1jW%7kfUiq@ucKLkuk)|KK0VKB&`-0~=h+N6XdXo_T9sc5CkrJ4KKtUBVD z1sRYT`jDs-fY^1N6RIAgmS}+@q0P6ec4niv3UOxWqRU5OP?&`8VqK}q8ogPnvKoyG zMO&q3s70ey1=_9;c&hwKho%-Kv`Vn$`h1B2tXEn912AKr>aY)sKx!kfi}F(xMs?~U zcp7Gu%w~?v@?Xqlnn<>w^B76e{uh|-)uP5Er;ti!FQ%$$l}$3bIukpgj|#HG^o0&d zY`H@_!}X1ziW*)Kp#r9V8k>>U>WyYjc+pP!Kv24k&RXBPj z_O3DnelC#%Eda5Hi@0O6Z$es{EyA9rqZB9!I1oybfVU*b$|;`dkcqNaVJ5Z0vY#(& zQaQ?|ix-i3r#B0;rnm}{*E4u47+(7WwunY<)wZM4m5I<9qf!WmEaQgQmtDXar?YyM zhZU$2R7{phdwLj!%!;%9?E|NN`YkKd9JafKL}Z1q*ORWthtB!DPf=LwcBYd^oz^Qk z+S|K(nU;2SYy!%*M|irkBD3`fu01o3*fFlNxnAorbcyS~|EnwVgS%tpPej<41^Z*9 z%7IQ=cwvgbYKopPn6<c)b*|NxZhu^ouaovSb>Ip82~-n|`k%NkTTNM0L5Z z6I1>aqtffRGNN&Om%~@g#RE4SoNSCi7IsV#BOUyua#XMO^27&Yst3lzq6>EUhq69~ zi71u4b*4scnv{C1WnQYR=F!S3Tc>7BgTO3Gi$%YzszP*nRq2tpz5!Qwx{KY%kyLxZ zgXuS^raU4!wtL~4cr4E2>_ANWzzaidN+@jvjC>=atvnl-SoLiEsi%@`xk_BT{-mpPp?Nr7>^oR|w@Q`#CZU zmh>Zm^!HeK9bFv+ZM1uh=v$Id)`Uw#5HYZ+P|e%pTyQ55yqWCN|5TTcBzuBcetZ6@ z+$v}&)`VGE1=gv#s8Kn-$lAnEv(~W2mh~#6(YDg#JFJgAyk$8#1Wne=)MN_m({J{f zQ#_N`TCj`Vz_OM-hAo22p}>&));8R)zI)b?jK<~J*Xedj9M-%68pD^Iy2Gv4`Np?= z`mGKgx>#1O=WKqGy~|!3v>xh8gNVzT4aSL0B7c3t1NYu-`iV}_)V^~ zgX@m{2(Pi|!X&Ncs@H1pqKmC)n&&;l>uY2dPSbggIOe#_9mYCNw{B`p-BvQeyPA=0 zc!(A;qAl*};vCVR$K4DUxXH~`yGK=g7lRT=#%bG)NV=|l`^Mv@S9520`e?CmhJiOs zxd|H7HN2A%9OWPm>?HT4=FN~-8Gu+Qlql`t4iOtNr%pobL|xalrB2`&jBF{L#Wks` z6eqm<8BrZM-h0%M&aTmMZQ%AfH|FDnUyHD@oj7TXo|5|{_MPQd-RoKPB6a)Tm5pG9 z6ztB7q1aT&ElX=OEX#2?hr_I?pAPYMjOtF6X}=pjTRTy98i(rsUAw<5>wFr^Z)?x+ z%bJHr+&|slF`h9nZp?`O@lyBS?s7Mh3*Q8Z$aUrCg&2_dK7Re~l$N>4?ULh+&Xi>2 zD+za;Zida>I=cJ5wG|Ei;Hp7+-Ryh@vC8aM|fwh@)tXDhPgOG z&Ye~!$h~*Q+U&uhyj{qRe}IMSpXlzFj^!pDJ$_fl-;B{n3QRmwq{N!_MV6g=Jw1yC$`_c2UBfA3}G(`Fk9;pRDdf|3CdZ>z$XEWS7?Rcg>v&?%icq zOvP2iFUHWXTW5&cFJPJ%krc^yB05pd4?lywzze(zZhog}e9dkGKWbs|Duz zy1MV}7Dl9GtQOp=;~MmU0uT=h2qZYr-~)sO5gug7P~k#_2O&D7NHAi=h8HVR6mer< zM~e>~YJAYK07H`_Rg&CzG3CUE7g^3c8L}lwnKVV}90;>#%bGxK(v&FFXhf3*D+)YX z;APWJhD5sTAXm zm5LGTjlL-D>IA9qY+bS%g&H3G6>46%bS1Ji{dkn}-Kc_hLRJenXW6hmpQ3%*mg(on zHR~>3YB_T0$s4!Q<(yis!NNerhBQq1bmzzdBft<4!1!_G$(1i>-rV_f=+UK5r(WIq zb?n)-Z|C0KJ9f-RpU&p^7Psf~v0u*>9F$=0_q7*8ly4jU$h><=9tQ0@@BQ9vTc|bD z!fVeh)rJaBsnr(L>#wi?yNN)&-0SH#2FtTBu$W{s55xX0)K9akY+Eq1_ddkW!~i!s zk;VR4+HJnjU=%1RtnjqXO|zWxBgh5? z?NAScnr%ixC0vTh_AbNFR3F2X(L7dhx)m%6$<#H@ApIhd#HoVale|)At;|P2hiq_H z_wdY#P6UyJ@~S=MEOA3v$D|fZVyX4>FLYz=_EcPJ4bH38ZtV2DZ>1&DUKqF16IeEZ z;&NV5Q`6VHK#g*c#Vw75mo)UILJ=*w00SffF-69 zFc;l zSf4%dVoEa%c-a-vR4V}&)3jcWzBvs! zPm5nt726;2rI_-J{{xsmtBouzM{!w0d-Dm~D)Q6v+(sAW8tp#Ua|(f$iDjCTSAKcs zn|J=vS%rVx#mNmPd+pXcPO)=C`(#XOlm`aaVxop`TfB6=tfWH?^@% zLn%sH&o)RE@?~p<5d0q1c2~dfweWs63yz2=crw&fOmZiQL2;h)jzm_#%>N&@2myUk?9vG(L83d`ARb+Fm#@QS!w#7*S*bUE@Ol7O-tB z8DiLkW&OLI(XoZ%nG>_5Wl;GNe;+(PIRVIo$GAQHgjo8t@x&naIDpgTD3Tl%(Gkr03aum{LKCN06R`l`pG>x$lKg zb?S1VGP|choidc85!4?FIXK5N0<4$SWZ^Xh_&Av|1#k02NDsQmPPC>~t!u5>x%h+q zMwL2LXmOmYg|HVBLuTrL!2H|*yB3wX-EEw*6loQ=M?8Tg5vIGesJBpOM`X^>ryNaH zP$7HCo(>U4K>b;;D0)$*y~~4~NeVD&`WRAmlXaB+ANo#NxyViwm$GH*;NG}HAUSL; zmeY|{bh)&$G!18L92qDti#Oj6HDO#u?G6iP#%0pBc8NS`D9QCo(Xy5{h(szg`xwk{ zGPh!*`>YmC`m749fUWCgZ+qPf9_{X{nH^%7b@8P$j5?E4ip7gfFh<1W3hIFSeAi?L z3R(nK$iPiZU5ti{O71ldsS8`G_WmhCZypSHAPO!MjXOazRgbQ;1nfv(YyDzXuCIr) zOzJlKwPH9)@S57?u9spORKr>_h*fpsiNzY-{%Y=UlEtY|e`7jYQ8#i8jby-d31aA4 zP;NY==7nSDy*H7#U`{63`ryXGP|8nk*{!5RYy4p9-nB9VP{DiM{AM`6*UIM=BH?6( z82c`cmxyERmJc>4z8>aPeTH&vg~z0*K6klLJamBNWimyN6vpj~Q&?j>tqNfko2#7b zeM>B3zSh;ug}qyluf`TI722x}4qSou{IU{bE8>@7x>yaF0h^BVHdhH7gOOkqwRF+XXh0{*E?Y zOF3Fk;g6Fz2JW$CNiKb&k-9g2pr$Ae?248d*-Kn)?n15Vq3~$ZDX!a}(>6V0sz&A@ z->J}$xV5TohRy)bnznMR(Id@!ce8*vi zG{IT=9b^GXVE*k~?0hNOz|Fj=;lx|*YiIk+4q56(QyAgahGVuJi`aj=j)Zp(cxEl` zU7u*rtpo(u*k?IHo)`0jvvz0Gy-noxg(=r`w{X!vj{SFu?Iz;o2F|vXeVD3IDAIDp z^=W|A8><(jUR^QBmT=GaUCGL;8M7syU6N3r;k-)~ z-R_Aix0|+IznDHj+082H-5EEyqw?v;#ju2ReQmkdIk?7;QJ(!f@Dg~j?dxZM`xg~S zzoI%+0gc}AO@8NIB0XrNZ6Tn=3)=#Np>mm%5_6-KbE|wKwwk*vTM9iNnW~zj5{22X zExED`DmkH}ELDLI`53+HW08~qqzGfM?rJIV!ocHV6|y40<%^P`**@u_y3LTb;3GE- zLM6E$VrIGh9P(3`cPM zCnK9Zx`{?FWToL@Idt?cG5i@vBK|7&V526CEK0mE7n~^kiaRzb441Wk(

7(*;geM32v{gkz(Y`m63K0VVoo>NM)=oVz;G!Vl>kczNZVM$9Gpra!;bS_`oUfcqE)PpO8p5Ma> zf})P=DnkUtn*7YiNR#gKG2zP2eyq#KOeo&^z@i)xgzQ4{8cw8;4}(-J$%MYSsXo7$ zOYt+z6_FqKq{{EK%t>r9d$UXK0>gdGJ{mhb-?BmhWgG;yBFiAw4DH1Jv})*FnJSQ{&eKbTBU^TQ|A zo3%(D}-B7x~lQYCdSoN2tD%(TEEPXv9E&cqrK#jPFn$Y1+DknFpS zgeHpnDW+5aL`Dv*M+*hGw?s4m4Nsu5uUwovI7CkNbkUM|xHm;X6X8S0q|3va zPl9^VlryP1b*9G5vGp`bl$257OfpCH((*zbzO*Wj1Dg}v9>nwyo#Z`36DYu$FULH& zHxx1<-8xGI#+k}gz?_mS{ZfHUuO*#TT1~5c%e!1$kExrSwdpDRwA8}{R?lNkBE?LE z@l?RmBLh1`&fv!EJe@7{Pk?JUEBZ|_wbTQw(tm-p`J=IHwHN&SE1uFc-po^KOu&2W zO|~RgbN#HXOw7m+>r}HOH8AZ$hs=!3nXz_-$jpqPonf(Z+)liz$ntz3$!xuz5k>D3 zwL5GLkBhFQx<=OWQw(FoJJrR%GttN-wE>ubTK!m%B_m_~$H`3Bsnf+Eb4ll0SIwM4 z$|=?@btDwjw=8EfrRs$-t*G%0E@AyL`C%C{uQcr_{--w-UFV zl$^cso}Z;NxZ<5#{h<+~v#CuQeybo|87~*rQJ_6U0!_z!q`)FIBA8OG^Q*6ZiO_~E zSVAdC7PUdOw565GDl9x(Tf;$Ij7@`5(1F#~K+3)Y%u(q|3xkLN7Er&CjauE*O-LY(-MysKH%(lr*^~yNQXw>uxh0^)^jkQ^Af_!m`=vo*l%PP( zOP+`T1eja_9^ke@S*2CT9V}7IHPOIA)>n+BFDYJF6H9M9nI1y2ovN(yy`KsC)s)fC zQRCo$b=#0?D&YCu`sL2&+Ao9IEBRKSb+)3Cq5H^I2Ns`@Dw z%+W;Eu?kf^h|^lN)Vt-}-#sQ+FC)~8HBZ@tvC4a463nBE`os@ivCgeX5Eio>LkO4J zV%rMQEXu|--Y*~%r&lv|!xT zheobdZOLiTyy>$m%7Vg?J8Ln-v`-CcH|jg1Ix?&+R|O!M}lo9a&$ z-t41J)?xV?(6eeKVr(;RvRaJC(}ii%Fe|cdZs&#$Xw&BmHe|&cv8wvPKQ3m>#_NG% z_ARlErr(GRYID3qR(yBnEXI8t++?6%v6O} zxXEng&Pnv-x0-(A>ZRbjWW?~>Ybm8g-VtKc=EvD_Q*UNoodm#ItaT`Alh5`Pv8mz1%lx{!6Za4O0C?iDf zw!CGMx^(IArcLfwTHrmMpVU-ODPl--jGvMn)1d4-p*|>7)KocsDM4ebRV}D~#b);a zqRXDNpT^mCw952p=F8r}BkreiKG9<>a?gAixD?kxp4|Y2*(G=2m}_Ix{_2cw&+sjv z792z*&Sh71O%i@_b+eXO-uK-`x1G1?Rz(N5Gzvu~+7>qRML3GwR$5EYqFh_YD(P%?XW*?%33o9164<&m zU&c*yboKL7E>>5*nnF?D>^8~LyEXX4!MD6;`~6eq7B2LgHSlaVTo4OL;03s!!_aQm*>TDlBb^>lk%!~E~Zv$Umdy&v&;@b zbj9VG-dqeS=w8jC%TaJ3Y^u8tU-o^72WwYM)xfb%* z#b~q5UJ#w#LT{i}eDL=^YXny?DmM)Wr?FxQmlvPXJEA;#H(Z*pSJ)h3CvEwmGd0va za7)DPv;L&fOSSJ?_NTvSe@BuY1Z{`!b~nFlZuHP&!$(6M+y}@33P^an7wb7|5Q;Bq z?^TH^BSW|IH?@=#@TCg<*1R*_e4(FlC_muGf0<8nRR#X9F` z-=oK;n&6-0!;6Q%Z=UNwx@fW=4dtG$re121FPLz3XIR%T)J$ST*Vj-lb-_{ceu7B{ zG+AK2RF>Kgdt@@F*uKOW$Gv;-muIh} zAi|zSJ-22q?8FOBK>cgZPdV;Ul-Aqi?UThiwFwfHgtiJ3TUf$#fOt^gfruLe4;B=t z@ZiFR3=bA~_+X;Mhz=)WqF1z1+L3E0_u3OXcGX@nhk8)5@0mJxqT z`S#vWT5+XWgh_$^WmH@p=?B|NClQw7M(pJzm5k$IxS@&kRXEjYh#9z{ji6aI5?zz= z#iEEhHl`ni0Pd99j~uml*n$QU86auAeP$kv@%5({l(^yOp_oh^*`aK??KPo`Do$CM zd*y*tRd^1nHl&vvF3ILoOuk8@VIJz~TaRs~_2FZA+Qnd@5qQ_AqmM!wsic!qTB)U% z9%m(fs{KjRid?OU6`cN!37nm+HTa^K`C-{xh?){K7m{^a*%hn{=EWz6Y^jP?i>b~k zD33SYb>fa;Z>%NBrFgnd`D9yHJ?pAv8WNlBv4bMp>ZqrdWucQ$-8!O# zXx#_jrvv`-n3+lKk;WvNQmzMLZ9V>~E~}2U%j>*hdKey}=^6%Zuy}o2s;2j<)ZU5X z@=9u#&|+Mqe-JmRaBs)DsPCv`ow*ym3p4vJ!v8)Trj7-afT_$g(_FL7H{+bMb1Mrt zthBE-d>YA(aZKy9CIy`+&_-v>l4Bv(b?}uyPK%(^unI=5xUs5ra-u(K>@S&5^Gq$* zw;I|qR3djsF<%!G?X75DzX)P(^HNmwd1)4T?%Tow%W_8wlZoJ%hHn}kZCY}upKhiV z?R9)X>zyxsXS)0#U_VNoaMFKUEx6k`zPK^SUFMoDy?6FVBEgvXL>H5KRo*SX*)Cf+ z%Km!=b#L5&1{Qj04tGmDA*^LbVHDkSYkY#nBIRmMibI-tDIKbHr&q65MSN|TUKkyj|hC*DOu7J2c zVfpQNrE((GCTAd?-twO?->enjPsoxBcmrhnh=Y9%8(Itr$l$5?}kf?qt=YaqNMeykoCgk?)-SV8=bC; zqBN0bMya_VnvFmxq~IPG=EOv{MwPvK57;z0Hjh0~l$x9q73q?vTly%FMpKGbfaJ#g zxekPrbID@Fwn#gXg^QQm6D#v)$CH#PfjeZTkSzI32hwJRHdNwknkhspaZ_OvlYjuu z=+1Y-GoJFyj^(z-uyhI1H3K`Q>TpL(@CfOU=>e!85s4y#K5l7T+gu~r$gdRLWkz&{@GXSqaMlFAn#Ii01RfkRSA5a&&d2C0Jr%-F#e)3d&5v79~qH0L-4D$$eL zGkA~GBNs>7(KXU>TvSA;LOF;|2oms)9>80%@ckZMYSsYrxjsXz=!FweWCI8mQuoaofq~!WmQ)-7qfc;gi z@r!C+C|lTDt&Xc(JM7tHX{$E=412XXDd4o_EYF!VDt|JPvcRe#&Pr)w@0w+2)x*mY z{>@%xa;d|dXj+b@k#x%aAs$nUJ|$hwrl<{WSAQGAY+kgWtNpFz7AeX-e+tvPcC3I3 z_G;hz;y1sR>SucQR!8%0Dm7U1X-YZyRwb70vT*h4$O1Y<;*ktS*dOhn=&>ry5IE#tCKbk{;}E*&dgz6rOcuB7Na9c#PL5Q;{k^CF+ph*Y0a zcEr;x91UsARQ^2EZwxM#l6QKv@gO}Pl!gQs7B`Xu3g|b^a-K7tq0=e%;YvIw3-BZJ_*EkN*^A^27F#3BV^}g4vxe+% zt^&Q}kQFh31Jy04tZL=WfU;>HLDtYn1XU`PXp33>v|UV*0_iNvw#1}HsakbhJ^4^M zl^?vGAAJYZGEF$qj>Mn+V#~xyA84Y7L(kF1J3AM4*>RTaTvfK2+nZ)EzFG`cLPuR- zR23#|e{L&l=#`QK)@Y@@JzrBjJHfH4I6$k><|#k+<&s4x0xYOAz3Xl7{Q6i-6}}-u z`)JCpxy+o}#?@;>=2u>4nm{fp}D7mqVaqJHv~<$J79S6SEa{#mh1joSnr z_0j`HbjH+Nastj#kfdYe%zgW>?fOf)=KdSB!qKfzoCg?Aal>#gseabcG}@FjT{)TdRrj^m%=-yEbMruU&Y#l>Fm)pL(@tJw%jK4o7p8 zPb?+QyRwyby5y5Dc0HZ!HJ3})#7og<$EB<5TKkTFUpumPiK4(0T#`nICDylOEd^f~ zc=EDz!~P!Z(Z^iFX{u)GeZOL}j@j2i?_YvL^_$##HZ_q$@1`rg%KH@?m92F!9^HO$ z?>^VW84bVf$!_wBM4+8^UqAcXe=}0uHu}z{EwmNQWSfWCpL~klGOhgF;sVo{T@mEf ziK+?F!s%Vj0bp&hor@8Tqp_O+{URLw^^JdB4X{~Nxp3JJfz@w~3e-3t@f}j_6^{qr zm|;PY^-0-!fZhp#nf&1x1`gTpC|y}0-Kw-&gLw?bv0kd_;MpO{L9w9mVVKp`Slh7& z$SBD^)d~VKUkU1y&<)-yLB>`AVAU1e_#Bl}D3AMj;TMA8qp+a1P!a`=;Sq`)Xw@J7 zY2i~mT)MSeU&R`Xbzl|#kJHiAazR$`xuIkkoe?@$$N^%4g(5A^@ISl??vkC2q~WS)vaSp`X;@;<;G!>5}n8Qo(Sa=amOLh2b+oV>C_& zqCJwBrH6oFVz)^KNa;v~abAC^4Z?6y-_78vg&oh4j=g}%frT3GC1V;*(gmWS6y>7T zrQsXWA(8#w8Cp?~o!QjT&#QD8*y-WKAqBH7BiB`)myM#uh1~-wP-CT7tNh~{E?Ff8 zWAs^1p^%%YT#!9Vl;SAXBIX(P8O|_Tm}Nbf3&tEoi3q&h7%P3_yX_n&l2Gp{UPbbv zurN?at;+IQl!0^_>O4RfO5;%?Wm1}14SJ0P*#_pok%3W|mKEGDa+_7|BL?!@CPvLH zPGKtQqm8LsHvNXyuK`zxSs@=!GM>40)9axMG0xxp z0i8B^BN25J^yMHN-k{+vkrFai4V|O@*pV+PrnN|>p84biViitV<11R80%1~I^a~6M zTMZ&2ts#>ll4k7DUq;4JaOulwGEI~uj0D(KQrhNihT%edVS7y)b_yQ}78HR!Vhjr3)6LRFS=!~5W-+PKyZv56&{b{XW{H|;-A!Zy5?}#+ zS?>7Ulws&qrXxbB#dms;X|~{=Y#-?@=g2|OI>HO&O`e+YmQ}hILJ8Re%BW1`&_LQr z1W_e=P>GC!V@+gc5z5i$EZTtb5swv-);MKqHYDPqQ@+r~30me3wVaqnVA>fJ)@YW# z&Ebar6F)r&J{6R%)gw{W)}9UEZdnXu+J{Rf%Y|$uIu=kdWmrO)){o870MyrsO6sK2 z8$PY1igI4;XdH1J(8kGS!a?1WL|6|ZXd9s?AkAckHWri)-G30IJ7TK%!QvqjCtm$# zs7IF9(OKk*0H}_t6jgF(j=)chTpi{86QW9|8pS7lG~!LcYKkIPt+L5DDvIdUpYZ|Q zeU4i_=Hx9&V3RoLg}RATJ)b(cmx`3slKIr73M7Qun2v(#w)A5ZjiPmFMp$y_@F}Cx zHLC*(kVxLd089X-5^TZZTdS!f+I1(zU|~=qo~hEPL#`S`V%cLVs$7(nLFravqMHk~ zN@$j*x|&U8VkyUhAR7)=p$+O-A{@5%sNig7{q)hY7$?dO%GZgD? z)l^qvkX)M*9eARqyhr_Z8{VBxx{^4&X9SYVg z(*lUTL?^papma9VgR&{czU+$Xh`br>+|un`EoJ3UoXnOWoAKq78Eu0~B+^RJxH2lP zonFNnX1;>XNoI++RjV95B@^P%!tSB*Opw!}?8gD()JoE3>1x`-X4fLnRE{m7MAZF> z=lt=8dJdS=-s-V+R(UZ^B~W&W*w?D2qCw10o&V$z9!oZ}^rG50&44eahONP=%f90^Vim zS<-q6lgK&;1;VcYPw=a`Eqtq6ECe`Qr|WHP?z*XS7shb)esFz~%7u1@0X(k^GYWSPD=Q3-QvZrM;T$RXQ+$ zROf*Tuh!=3)&j9$5-ap-j{Np;1XA3fa3dNbo^US;{8+j)wn_gP>n;$CYArG*Bjo!?1G2pfw?D%ZE@{CQn6o1Ad zl@chK_AczY>o-jn6K`O$v@CpqnC3FG**)AlR$_mEW~&nB7WU`aS?r-iUOlzVKOb;M zs?eaSn5eR|ClPW2nyL!>kC+Zt9Y?ZKJ@7NxE1ur2b2?H)Dr*SyZ;M%RC_?82Uy>~Q zbB=~1nquhM9P~msV==q*OH)cBZAB2hvBwgY_AU&a>}k!$a$HvJn!+jPDDWtAnJTv! zy>g~#rE^`5sp96W&!*4yNiB;R-%~j+%bt}*{qymPvP~H8ZaU>~N&~8INfRu;ZA}TD z^HR&VF6tC+Y3{MGL^q|D^)eyn@w{rZ0Uzi)GqOGpvCxX3zCm>#MsKP>Xf5h)A^Ou# zpWU$NSovN2e({y4)r+k{AF9&wU z(%?+PX!mvI?uy$EFGXEt_J0HTbrAj(0gLALx$weKZ)?NzrS9}FF$RRCmCfQb_db+g z^P_0uG8%%AmIaj{YiVzBE&`YAa}S%0m0IQA9Ou*kM;gDnnN z4lzy6GBQE4SPAdGH8^7*HJ|!;eoQwnPu&YMZ}BoV%z|}(6P+kimJuf&v{q3m7c|#F z&UXW_%021r-Ryo4HCkUU$oFUz8mMa{BawI`*iz8NC!wr{r zH%d|qVjDF#x_Ti?1f-^UvpYL-c+!m7VRDjdM2j{+*Z1yn_OO&Q*;b_;60dJh*exFk zm#6ca^Usct65IR|8?CLacjRH#u4-*#dE=d2yZ16SvQ}#-LQ5o~|4WUAV9v-`ZW%d~jmv^3RH%0*1cdoskTtmulO zP;|8u8=0JDlv8{DyJpVtue4$GLL}VQYc_kixnTG~US?BoPc!Fpy5nn+2We<6^{Iq4 zgD$f^*K9YBr2`8)%r($67LO?SVuZ!^A~CQ;+$rwohPBkQ2zUKdFzQM8q1j^FJ2{b?tfpo>V52_G zzxCVec+UL;gopj&UgU`J#zv7J1zsGO z@FYixB2A9;_%h?kmme3d>_~Ga%8e@>zVv7_C&QFMA(oIKAV5;3OPMxx`V?wZsZ*&| zwR#n6R;^pPcJ=xdY*?{l$tJ~F^I<}u9M9@(d(&Xsk`pzO4EgqF$e=m*s(jdSD8iTw zZOU~CcqUxBeSK=Q*jS<6!xnq;y;%9+TD*vLs(rjUaA(Az2g?-vw<6=kA48w5?6S4$ zxU=#4JiKyp!L=wM@;>YMpzE}X_r_j$d}dF%dO=eZ*xV#^wwC=i#~mDIV2VLYW3Rou z{WneE3a^`%{hR1s%q^wo4Nv`iyga7#29gY3PCG%QliEbAQ7OPMybb5AjCThm79a7*va zF6W#POGVENtv^8RJg>)=KI=*<_Vnmf2>*>JvGUfZ~*}C6$yeQcs1& zE2dLJyU(p)>EzHaTICzfN^bR9)7A`C&C^{`5u_E`Yu%G9*la0m^v6@H6fV$fWAw~E z^kaCvnvduml?X=ZiN@*76`%6}9-S zqA@*qQfaBZ`CS+PwL3F#L2J6+xNS!Hyuq@iTULb+c8Os$e?51k2HlQ4KuFVSm1L=L zD$g+Z$^~+8y{+Di;!vZEGtp2#2X6J#Iggof+zl5VXRd>$VaQY!#1T$v92WhQtz1vpy zFt@>A4NNsVTg_TjxDg6YaDAgI-QGedpv8G@P@0?E^m6@Yr4BMrUL#x?#ttXF*zM3( z{@NYlltjMARq%-FDk6cXcPrUQ3pEyco5!G*qbib$Wylj?&+^hL=?!sK3Yy|+wpADy zI&gX8s$Kbz_^KZg@OR?7jqlD90}|{HkbxBBAPE_wHuY^2~bLX!Xgcm zXS*@^D0sjReE-ZO@WWnpM>_b;mjy4Q4!~ z-C=NvKu(TvaO|t3+=dvhRCWz+#!FP50OqBIWpY43w3^61hRO&^=0Uf_9K)6vqYU03;jpeaD1_uSV`s;{ospa^17U!={TV|W(sMY`QW+OnQ-KwXt&jl~=s*ct z$jG$|aB*x7EVo8AX0|exGDM>V+3Cqc`O=HT#MLXKRyPV^FE)F;<=vVVC6vJ|nqceH z9h0QFVM>&uSDYmC?l~!}*|Mb4G@%oHLmdn@QCvII*S^MyJ~9q%LW|K_I_b#BsU5IJ zRDxQ2INH19`AJ|dji@LusV;EJu7(9mAvDdmp?dc6W!m!O_kuRFkZpCOKI5v~q64gH zPGkToDCl1K+E>3iOH@BK&m4OgQd_q0X%(F(O-a*IBUY)2NE0Vkl?r-h4O+#3BzE_C+Ki{IoHYIVxD+RZ3^5LMpN5Q;Z^(m2=Aa@TdaqU3e$hS<4! zPn6L6s77hY9_wHTr;iM8oqjsrxa6P(f7S1P`P*NyC{3df^cz@*bS}c;(YZJ+RE^MT z&vxyTs+-;3HaFX^b-}8=TXk4>4jdR9K2~JO#0<~^X5VtvX^!T7T56fwL-HEYZdh!w z4m)!@b%KdGht#cn6^Go!ni8ejk}AExm%Hy4d28d;q6F0#%NR2-Rg}w|u%cVu&GGm} z=-p{djY?W&ep!SWp7BH_{gsX$gv1kT?AkNQ2*W;&w0*sY1fRG zWOndJ;-X^Suvyvqjug4`y<+_0dokr+HpKTrWqNIVH}KS}RF(BGq!s(zLGw_UlNs3) zQ~E&|Cs@D_3}<7dTFgdw*``G;aCe&t)#HsAgjJ1Yqz-K1w0cyGk=@}Pb#~!ZCe_kF z%WT6w<=~t;vDjdC*P^8@;7QJx#6Xs`6d7Ah7pwKDnTE@#xfdP+;}*E$6x3W&ZJsF^ z#3*`}_q^%N*HZe}HJr{tP#r8LSAc8dAn^L?(Nk9mb2ro#N;RUn$y;7ZCqQ| zRb2`5pf$C%8X^6|slz4Goh>fmac7HfklKjkq#Wh9k-F_(dt0Wm=D1z!%RQbV?8rto z&_XrdWP2G$#avuDwdLx~Tumv^t$p(sS#HdhzYy6@O=2=Rqgt77ingxu78|+F)M5g$ z*2wFi^E}<|U#AwAAcqM3>fLs?zx{r#ORjvY2Jiru=A+pp8HVeIcd^6sd>VIm))}nw zK6Cce_taOXd;ZojdpW80ZFRL7hxf%2{jjmx@LvdMqp0yP`~s$hf444(lYzouk0{PUA=oW0k}!O zqJ0^?{XX$yHyrR1@3E-FP2Jo7?B1n5HaOW1ck`bg{mIfS?#J68wTm}F(g&XROGqzT zPf#-kcO%HU?_}wuk-}QaEk;VXDCos1&AZCy@t|m!jw|MzW@PY2rGkUe4p5sUOkwJ7 za%QQ}f(Z2B@14|4;oj@)4zK1UtAff7qnhW#bj$KIu<=eQ_m+nGr0!2@2eB0EbBLK-o%qYJYBj_5e- z4=s>4BCz5bDhAh$tRw`VY=+WAj_IClt1$0|{tVS@i+WHC`?M<#;ViDeWl^4J0Ncsp zevmE>qWrv&8Jp1=t>XA*M9U1#Kg8s~Owr*O4^9g31Ca^m6yyE|t_QDC$VLe$ROqy( zQN^Cg4PkMOx=#EGhw{LX*Qid~SWMvXi4ub@`}%J@UJ-)$F`ibB(O}L8gC~`0?DP(3 z*__1TZtj;RtMOEi=UxoFYOCa+D*;Uqc3PzQ_=KKvV=%;U1z*d@z^zGK{^ks83KcPF z!9YhxeB%9FkB>;lHhRF1o>3=vk|)__3L8w1I)xjx@sr@n;O23_&MXd{&#D-$JnRnE ztW4)Tjfoo18<|fJq4MH1(uCwMWgv|lv1@5|<|RLpwSw`|D1{@9lK;Xet8OX`Ii+99 zG7pQ6--1L5vF8l??7b#%CBLNU5^tqEY9kBN3H#0Wn9}-e&}8DW@W}A7#)vH+u=So0 zde#riKt*(_C&;!B+G?5rn8lQh#0eco-~781l7Q_vCt z9c{5S%aAwyWVI%62JLKZ>u3&67IQ`#B)jwG)hzOMTurTTa-&KGv+wR%~YyEi>>L3M)o3Y zMMEW1udY$l%PvQmh&&IE8hcP$ycMMzAWXgrF5*C9z2915b{TN!yQAAm%zl$uo)U zPDAUnE_F;P$W-l=4sVB9+o!{HwOiSA=Bf?T{Vdi^&yzW$a5CT2(uQe@d`iyFRb_k1 z1AkLE-tkKN6z2M`p`2+-OC?DMQ?4SBt#q*2BJJzK^v@!xWrxi~A68$Zv}A-d71!`- zn^000q67wYUc1(72gw8LYw><^S!obKMOObb2qCkx#BlEBK8X^0Fl5L?eUuavPwR&| zMnn^A1kI!#!!HmkQ6kd_QEybrgs3`AOilo`_ncI)P-!T!RMbqvstOiPknVKQEaw1o z+CmR$x}{bQbI=gYAVE@b6t~ZKf>o}ro)FSIezmy3$<1o%Q&ChvS64OJRA%9ny5?x^ zI`((7L?P!kUFB;oMenL?H!_y-Yn%SpdGRMAt+Yl}(T)fWchzRpcg0fi0EBs;mxp`UY?221QZ$9lEYOz8YD3Vg zj5j^~t=#PBhq5g}m=pFmwheE$A#E3Pf>>06_YMwy1l|QawV>j%EFO_8#c>hg+ zgVp&&i)wjw32l&jk2pXP8Mm}D1>ceng=LQQb*v`mbLzKq5eVo^mW0_iDlIjFrO}fQ zl$0Bon7dd(Pj)Sp*7kPLexuiBMKFoKwRE4^gs(YU2eI}}g&b@7Ji(b-7Ko?zZ--wQ zqchq>jt@hNkGvB8=rvyUJrgeY3>2be2ZFV)R&8uyueeTUITRa>Py09=hn1{?HtG0T zXh<=xc={oE)0`jEPR&Zp94P8|^`wJm^8{B|y^m$#@{PGB@Qxax?bi@T>kOw=3XO(c zRW42yrK+4+(K1watNN6UT8lUGV>#$#;<%eTP@#YGj00L%?vy|u*^wU)C;v#J``WKb z% zgK5%jGtNdy#ihp&@+t2n%ajKO6{JR*tGVc&aKbe(`S&pVh z7e!fW#?LZAZBm$a87V<=Fhg0*QCY;(F;`8QCL(|ZxVFewozr<1$W%x>dw@{_->c)63z#m>sJl(#Kk{bsHEoe?UqF3)WUxXVVD!dcHH$2^sP z_3OYm$AvCWn{&@G*PEy9d9J6t2{*ByIb+3jgX;ArA^-teo#HFr)n&>3_*>8YrC1>o zHy_I!@sKNWr8Iso76HW!SZxmY(0gXPtFasFWF2lh7rxI$ezRT;hb9_^_4_VIvf!Ts z!(1@pa23Ve*{u(DggKr)uO?{Ea=1yWC4b#}4$r3-yWr857cpGCegv zIaHj@^~)zX#*cc_5`JS?+{Qh%9Hm{|k@KbRIGQ7)0JhfR_rBsKiK?_?GCvVwT64t(y z=!lfxy=#n}mQN$3mPsz&O(o1nHRQ8*g^$jBjaC!YaR1_oF|SdUt^FyScQwoNTXZ95 z^`-bZ4|4O;RB2oOwni?rA)nc2|33SDgeGkwE}HMZ|F5&HZB@4B;HZi0H zoqPj9E$v0h^n@45)9n5*bQgQG)*Bq*_!A%sJP=55-~)pN6Cy+?;)cS83L_#c@bI8S zffgA$EC5j;#Df|$UM#p!;zy4TOOm`;vL(lqEMHP|NmJrLf-76re9#bNOr0cmVial6 z=faycPr4K#vgbsgLL+`88dRvtg-U-C%!)PRQ>_|jCd3G~r`WIs&7Qs3@u<{|Ry|TJ zIy55KyGd{CbZgZjUc6irI{h2hpxMHOAL@NOGj2?oNC_wY<_WW8*283V^8H(OF=54G z+Y&XJ`9XvLs8g$6&APSg*RW&Do=v;9?c2C>>)y?~x9{J;g9{%{{54pkq+e2$to;cdp>dh87(;C%C~r&NOBt@Ye!H8BQXSJx?b7IO{GrJhL50VraGZ*iy4 zh~(kr6@o({hayUT2{qM=(;2uPPKM1zqgI_sxK>axIkjJinVndkc>fhilYT+MbzFoM z)(FyGK$ z#289V`pBP4O6oXefZFZ!p^_D4_oIwp4qBsNl^IoCi%(`rAC`#P_?(tjs+g9J1NKGK zp(!SISbU59r&*qzUPvioV`a%Fq}L63AC6)ANvMQk{?%4sfQCe7U97T&pMu8{sA#Yw zMU|&$K4Q5bSC9VbWwCkLnjutp>S-QJ)HbPVtXR5=EsW#3DxJAp8tN#n*+EDiliQJd z9-~IC%43oSl4>tm;5J$>tn)&*oRjZ%m(hZIZd$I64xL8l#1vO-@x>TttntRihN`QW zaZ#JFhMyvvU!#3`%w1v8eLJFHqv8jwf&JU&+h4W+S_SOK9Y1E>uIGySD$t}d9ISwW zHHS1zJ5yz|vmG0j?8-}`+^dz_jtsI*plupsu9vpjtesp_jUtDcuKVJH2ah>0p$FGz zU%>G8m@>Cguh`+JAiDdfvGEFhoxeQoNSRklx_6f08cs-L*;^jOuzrH3%XqQ$CW>g& zT~~=|NLz^?ytherZn&1)XnCP0PH}!acf6lYiyzUBczRVU(qRCMr zSTE%1ws`s2e>=`ugC}J!I+cdLr}d3vOE$gc*)A`yPqcnDsjdEjUAL)LEBiBI+h$Ik zMMkIP8P!AIswu9V-wUPTwwL_<6ZN{&S*rXOxs&-xcq6*Z?a&gx4t;1rRGJao+9s%+ zb*n53YZT$4rYEdbFKu&cp05@NLfI*2dm_Bv)e2C76};|+FpQxLXGlXg8SjQ#t62&? z#je6t&wF8N5PAxQE8L;*IGQmb@A8&J1a?b;JH#7|0CzuZ)k z(3IxGFe9$3L|vR;__(*M0bpg*wn&Ug1`7lG~VGz(f-41n1E4?+XGzOi+WqpDFuajyRun`Mq3w?CL)cw@6fVC>%W!&YkE2@E$w|Iyd}4AE4y`}94Tyx z0Mp}sdWb}m#IsDL8lg7rdCW+n2!)J7TnKl!KTb|aou52XrI2~Dn~3vDVk0O3FZaOP zmCJlId)f&X-um{pIpttw%h$kAp08F_v0^eQ`B`+)wle}$-q#BD)#4uUBb0ky z-q89ypZZIlPNf}VL-y4Ujx?S4!c<4TH8ahs_DJImU{(jYQhhCSX#wL`zJ`0x@^(^h z(`9R8kV0UJZ1P_60$Y4C_})WGwYyOfmva*M&eS%tRe^j8^wM{ymNAW-ZggYl{8}Kx zp8fKlH2W%gFDzJ?3aeAvvn%+z4_-}+1WMlwVJ zW+Gf8Y2CD?`9F@WR#r+p*LSgv!S|YxO1*Z!=tT;(8wRZ4{s&LIiYv4Od#WM-Tj2QG z2hzH*H+NVZnbcrsyV?|X4H};@Ug6CP3u|@N5~cw;+E44 z+lB&lkNiD|eVj00|h(_BAI;nSJe+mX*omnlKN?9V&&2G@Br6ZXk;#z~ zyD1qTe7#+uvc6j~4Qn$zRXp2sLz%xo>$SYU3`Ss*Taaf(h{SA7@{*hU(!&!%h?^Yisp409F0A1H`g)K9rtG0XEpJt4~yVX z#TT8os&eR-*XR2-=E`_|yqt>@THy_GldG5%3MzK8plx`SBOmgf5B|M;F+jQIH_v(C zk`1J7x2B<2(kDQQF`z44`(#T~+o$1t=~WZuj)rTrtUI@_1+8H0hrJ_>YgDE#*Lc!) zF7$2VwQ{6iw6_)hVn%NzW>i+$q3V3qt2nB%qhGh5OuaR?W1YSeFhd$CKTK6${ie`b# zqh#+fcjxp}&?SBn7gqrVb~;q9ms`ZM{lEpWHshV_M?KvlY$}mC>|Dd z=$9+LCxt>(QD}HcQ^Q{vc!rjyfi<@wt+hzh2W5n|h0;`ik0E;wnD zcu<>!iIXd|yzgC~Z37`ZhV7j^@NcK0}9 zx)*>INH_AeXTe5^)Al6hV|m!cKOd%bNT*0zB3(47EPE1W8v;LuhM@(f)OPtmuS07a0m{imIA22*MIY@WHFh*^pt`8}XXR?3-+5Eh5;$CMz}m`O)eDaoH%SyA=_adD}Z zgAsFZBvkM$`mR0?>9 zgNlErnS?f@pc9So^^;&1TkhE<1qy_nmQ5e|pvx$P*lDJIIiWNceC#8B4oY;#iAJK+ zoeFx0d)JzGdWlzRgCR#MZF4@=cb{3tiFZnpdxe~!$1+9df5Ev=_48iU2YFJMTRE1a zp8BbP_=LI0d{Js`C4_kMB{(yds+D*tp?NMvTA`exm&ydFA^I`^H>gJXT vlSf*9 zIy};dg%N6xzY>a>rF`Fcg~bX|)0LSZS&IobX&Q-TSZYSh%(z4u1@W@sFmR{vRv-`a+-_oipcu5FiY__j+o$cP5Tj4*kebr^*8cy;19hQkjVn@tXYRL3}<{Gr;Dzrp9v{*-o>FPmY zI)O)Oo`)5fk)?#0;*BJlG7xlWJ!oLerb+}M0i7zaU>mlzhH3_Cw5)lJT)Apg=zOw* znxpCx5vXSN+xrm8yqNv1%E8YPOzRw4nRB@2Yqq3v!~BxcN13u)1=Dsw0LPvZ*_l zAa<-u*+2lfgP24@Ip}{F@vmb0yTGes)wvQPqmxu}lxa&)NLXh;#Zgi5egn_0TJJ!y^wYlk0at2r}R2>H5iw@gna zr@eTyCK$T>E4uyrzup!%+=UsD%0Adph&)qVz=)G$Dz$a@xD88pF}Au1yPMGHrV8N@ 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

q5s~7m=0mbG`dJ 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

F19y@Q_YmE(Q88O@LFdpLZ?NbH^TLpk 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

?+D=PH*43a->#Jh{zqC-3JW!&%gb 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 ?yu_1x3064KrB!x??hGn0h%=8M+0G8Hdp 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

L_L!KNnVJciK#_YGg>!VcnW8zG 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

yDoW)f!ZRUVU}klW?))5jM<9TE9=EZ8>0jt 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

- - npm install size - - - npm bundle size - - - npm - -

- -> (A smaller) Polyfill for the [React context API](https://github.com/reactjs/rfcs/pull/2) - -## Install - -```sh -npm install mini-create-react-context -``` - -You'll need to also have `react` and `prop-types` installed. - -## API - -```js -const Context = createReactContext(defaultValue); -/* - - {children} - - - ... - - - {value => children} - -*/ -``` - -## Example - -```js -// @flow -import React, { type Node } from 'react'; -import createReactContext, { type Context } from 'mini-create-react-context'; - -type Theme = 'light' | 'dark'; -// Pass a default theme to ensure type correctness -const ThemeContext: Context = createReactContext('light'); - -class ThemeToggler extends React.Component< - { children: Node }, - { theme: Theme } -> { - state = { theme: 'light' }; - render() { - return ( - // Pass the current context value to the Provider's `value` prop. - // Changes are detected using strict comparison (Object.is) - - - {this.props.children} - - ); - } -} - -class Title extends React.Component<{ children: Node }> { - render() { - return ( - // The Consumer uses a render prop API. Avoids conflicts in the - // props namespace. - - {theme => ( -

- {this.props.children} -

- )} -
- ); - } -} -``` - -## Compatibility - -This package only "ponyfills" the `React.createContext` API, not other unrelated React 16+ APIs. If you are using a version of React <16, keep in mind that you can only use features available in that version. - -For example, you cannot pass children types aren't valid pre React 16: - -```js - -
-
- -``` - -It will throw `A valid React element (or null) must be returned. You may have returned undefined, an array or some other invalid object.` because `` can only receive a single child element. To fix the error just wrap everyting in a single `
`: - -```js - -
-
-
-
- -``` - -## Size difference to the original: -| | original | **mini** -|------------|----------|----- -|install size| [**50 kB**](https://packagephobia.now.sh/result?p=create-react-context) | [140 kB](https://packagephobia.now.sh/result?p=mini-create-react-context) -|minified | [3.3 kB](https://bundlephobia.com/result?p=create-react-context) | [**2.3kB**](https://bundlephobia.com/result?p=mini-create-react-context) -|minzip | 1.3 kB | **1.0kB** diff --git a/node_modules/mini-create-react-context/dist/cjs/index.js b/node_modules/mini-create-react-context/dist/cjs/index.js deleted file mode 100644 index 46e99ed..0000000 --- a/node_modules/mini-create-react-context/dist/cjs/index.js +++ /dev/null @@ -1,167 +0,0 @@ -'use strict';var React=require('react'),_inheritsLoose=require('@babel/runtime/helpers/inheritsLoose'),PropTypes=require('prop-types'),warning=require('tiny-warning');function _interopDefaultLegacy(e){return e&&typeof e==='object'&&'default'in e?e:{'default':e}}var React__default=/*#__PURE__*/_interopDefaultLegacy(React);var _inheritsLoose__default=/*#__PURE__*/_interopDefaultLegacy(_inheritsLoose);var PropTypes__default=/*#__PURE__*/_interopDefaultLegacy(PropTypes);var warning__default=/*#__PURE__*/_interopDefaultLegacy(warning);var MAX_SIGNED_31_BIT_INT = 1073741823; -var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {}; - -function getUniqueId() { - var key = '__global_unique_id__'; - return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1; -} - -function objectIs(x, y) { - if (x === y) { - return x !== 0 || 1 / x === 1 / y; - } else { - return x !== x && y !== y; - } -} - -function createEventEmitter(value) { - var handlers = []; - return { - on: function on(handler) { - handlers.push(handler); - }, - off: function off(handler) { - handlers = handlers.filter(function (h) { - return h !== handler; - }); - }, - get: function get() { - return value; - }, - set: function set(newValue, changedBits) { - value = newValue; - handlers.forEach(function (handler) { - return handler(value, changedBits); - }); - } - }; -} - -function onlyChild(children) { - return Array.isArray(children) ? children[0] : children; -} - -function createReactContext(defaultValue, calculateChangedBits) { - var _Provider$childContex, _Consumer$contextType; - - var contextProp = '__create-react-context-' + getUniqueId() + '__'; - - var Provider = /*#__PURE__*/function (_Component) { - _inheritsLoose__default['default'](Provider, _Component); - - function Provider() { - var _this; - - _this = _Component.apply(this, arguments) || this; - _this.emitter = createEventEmitter(_this.props.value); - return _this; - } - - var _proto = Provider.prototype; - - _proto.getChildContext = function getChildContext() { - var _ref; - - return _ref = {}, _ref[contextProp] = this.emitter, _ref; - }; - - _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { - if (this.props.value !== nextProps.value) { - var oldValue = this.props.value; - var newValue = nextProps.value; - var changedBits; - - if (objectIs(oldValue, newValue)) { - changedBits = 0; - } else { - changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT; - - if (process.env.NODE_ENV !== 'production') { - warning__default['default']((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: ' + changedBits); - } - - changedBits |= 0; - - if (changedBits !== 0) { - this.emitter.set(nextProps.value, changedBits); - } - } - } - }; - - _proto.render = function render() { - return this.props.children; - }; - - return Provider; - }(React.Component); - - Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes__default['default'].object.isRequired, _Provider$childContex); - - var Consumer = /*#__PURE__*/function (_Component2) { - _inheritsLoose__default['default'](Consumer, _Component2); - - function Consumer() { - var _this2; - - _this2 = _Component2.apply(this, arguments) || this; - _this2.state = { - value: _this2.getValue() - }; - - _this2.onUpdate = function (newValue, changedBits) { - var observedBits = _this2.observedBits | 0; - - if ((observedBits & changedBits) !== 0) { - _this2.setState({ - value: _this2.getValue() - }); - } - }; - - return _this2; - } - - var _proto2 = Consumer.prototype; - - _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { - var observedBits = nextProps.observedBits; - this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits; - }; - - _proto2.componentDidMount = function componentDidMount() { - if (this.context[contextProp]) { - this.context[contextProp].on(this.onUpdate); - } - - var observedBits = this.props.observedBits; - this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits; - }; - - _proto2.componentWillUnmount = function componentWillUnmount() { - if (this.context[contextProp]) { - this.context[contextProp].off(this.onUpdate); - } - }; - - _proto2.getValue = function getValue() { - if (this.context[contextProp]) { - return this.context[contextProp].get(); - } else { - return defaultValue; - } - }; - - _proto2.render = function render() { - return onlyChild(this.props.children)(this.state.value); - }; - - return Consumer; - }(React.Component); - - Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = PropTypes__default['default'].object, _Consumer$contextType); - return { - Provider: Provider, - Consumer: Consumer - }; -}var index = React__default['default'].createContext || createReactContext;module.exports=index; \ No newline at end of file diff --git a/node_modules/mini-create-react-context/dist/cjs/index.min.js b/node_modules/mini-create-react-context/dist/cjs/index.min.js deleted file mode 100644 index d939b81..0000000 --- a/node_modules/mini-create-react-context/dist/cjs/index.min.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";var t=require("react"),e=require("@babel/runtime/helpers/inheritsLoose"),n=require("prop-types"),r=require("tiny-warning");function o(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var i=o(t),u=o(e),a=o(n),s=o(r),c="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{};function l(t){var e=[];return{on:function(t){e.push(t)},off:function(t){e=e.filter((function(e){return e!==t}))},get:function(){return t},set:function(n,r){t=n,e.forEach((function(e){return e(t,r)}))}}}var p=i.default.createContext||function(e,n){var r,o,i,p="__create-react-context-"+((c[i="__global_unique_id__"]=(c[i]||0)+1)+"__"),f=function(t){function e(){var e;return(e=t.apply(this,arguments)||this).emitter=l(e.props.value),e}u.default(e,t);var r=e.prototype;return r.getChildContext=function(){var t;return(t={})[p]=this.emitter,t},r.componentWillReceiveProps=function(t){if(this.props.value!==t.value){var e,r=this.props.value,o=t.value;((i=r)===(u=o)?0!==i||1/i==1/u:i!=i&&u!=u)?e=0:(e="function"==typeof n?n(r,o):1073741823,"production"!==process.env.NODE_ENV&&s.default((1073741823&e)===e,"calculateChangedBits: Expected the return value to be a 31-bit integer. Instead received: "+e),0!==(e|=0)&&this.emitter.set(t.value,e))}var i,u},r.render=function(){return this.props.children},e}(t.Component);f.childContextTypes=((r={})[p]=a.default.object.isRequired,r);var d=function(t){function n(){var e;return(e=t.apply(this,arguments)||this).state={value:e.getValue()},e.onUpdate=function(t,n){0!=((0|e.observedBits)&n)&&e.setState({value:e.getValue()})},e}u.default(n,t);var r=n.prototype;return r.componentWillReceiveProps=function(t){var e=t.observedBits;this.observedBits=null==e?1073741823:e},r.componentDidMount=function(){this.context[p]&&this.context[p].on(this.onUpdate);var t=this.props.observedBits;this.observedBits=null==t?1073741823:t},r.componentWillUnmount=function(){this.context[p]&&this.context[p].off(this.onUpdate)},r.getValue=function(){return this.context[p]?this.context[p].get():e},r.render=function(){return(t=this.props.children,Array.isArray(t)?t[0]:t)(this.state.value);var t},n}(t.Component);return d.contextTypes=((o={})[p]=a.default.object,o),{Provider:f,Consumer:d}};module.exports=p; \ No newline at end of file diff --git a/node_modules/mini-create-react-context/dist/esm/index.js b/node_modules/mini-create-react-context/dist/esm/index.js deleted file mode 100644 index c93d55e..0000000 --- a/node_modules/mini-create-react-context/dist/esm/index.js +++ /dev/null @@ -1,176 +0,0 @@ -import React, { Component } from 'react'; -import _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose'; -import PropTypes from 'prop-types'; -import warning from 'tiny-warning'; - -var MAX_SIGNED_31_BIT_INT = 1073741823; -var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {}; - -function getUniqueId() { - var key = '__global_unique_id__'; - return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1; -} - -function objectIs(x, y) { - if (x === y) { - return x !== 0 || 1 / x === 1 / y; - } else { - return x !== x && y !== y; - } -} - -function createEventEmitter(value) { - var handlers = []; - return { - on: function on(handler) { - handlers.push(handler); - }, - off: function off(handler) { - handlers = handlers.filter(function (h) { - return h !== handler; - }); - }, - get: function get() { - return value; - }, - set: function set(newValue, changedBits) { - value = newValue; - handlers.forEach(function (handler) { - return handler(value, changedBits); - }); - } - }; -} - -function onlyChild(children) { - return Array.isArray(children) ? children[0] : children; -} - -function createReactContext(defaultValue, calculateChangedBits) { - var _Provider$childContex, _Consumer$contextType; - - var contextProp = '__create-react-context-' + getUniqueId() + '__'; - - var Provider = /*#__PURE__*/function (_Component) { - _inheritsLoose(Provider, _Component); - - function Provider() { - var _this; - - _this = _Component.apply(this, arguments) || this; - _this.emitter = createEventEmitter(_this.props.value); - return _this; - } - - var _proto = Provider.prototype; - - _proto.getChildContext = function getChildContext() { - var _ref; - - return _ref = {}, _ref[contextProp] = this.emitter, _ref; - }; - - _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { - if (this.props.value !== nextProps.value) { - var oldValue = this.props.value; - var newValue = nextProps.value; - var changedBits; - - if (objectIs(oldValue, newValue)) { - changedBits = 0; - } else { - changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT; - - if (process.env.NODE_ENV !== 'production') { - warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: ' + changedBits); - } - - changedBits |= 0; - - if (changedBits !== 0) { - this.emitter.set(nextProps.value, changedBits); - } - } - } - }; - - _proto.render = function render() { - return this.props.children; - }; - - return Provider; - }(Component); - - Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes.object.isRequired, _Provider$childContex); - - var Consumer = /*#__PURE__*/function (_Component2) { - _inheritsLoose(Consumer, _Component2); - - function Consumer() { - var _this2; - - _this2 = _Component2.apply(this, arguments) || this; - _this2.state = { - value: _this2.getValue() - }; - - _this2.onUpdate = function (newValue, changedBits) { - var observedBits = _this2.observedBits | 0; - - if ((observedBits & changedBits) !== 0) { - _this2.setState({ - value: _this2.getValue() - }); - } - }; - - return _this2; - } - - var _proto2 = Consumer.prototype; - - _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { - var observedBits = nextProps.observedBits; - this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits; - }; - - _proto2.componentDidMount = function componentDidMount() { - if (this.context[contextProp]) { - this.context[contextProp].on(this.onUpdate); - } - - var observedBits = this.props.observedBits; - this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits; - }; - - _proto2.componentWillUnmount = function componentWillUnmount() { - if (this.context[contextProp]) { - this.context[contextProp].off(this.onUpdate); - } - }; - - _proto2.getValue = function getValue() { - if (this.context[contextProp]) { - return this.context[contextProp].get(); - } else { - return defaultValue; - } - }; - - _proto2.render = function render() { - return onlyChild(this.props.children)(this.state.value); - }; - - return Consumer; - }(Component); - - Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = PropTypes.object, _Consumer$contextType); - return { - Provider: Provider, - Consumer: Consumer - }; -} - -var index = React.createContext || createReactContext; - -export default index; diff --git a/node_modules/mini-create-react-context/dist/index.d.ts b/node_modules/mini-create-react-context/dist/index.d.ts deleted file mode 100644 index 034d9c7..0000000 --- a/node_modules/mini-create-react-context/dist/index.d.ts +++ /dev/null @@ -1,24 +0,0 @@ -import * as React from 'react'; - -export default function createReactContext( - defaultValue: T, - calculateChangedBits?: (prev: T, next: T) => number -): Context; - -type RenderFn = (value: T) => React.ReactNode; - -export type Context = { - Provider: React.ComponentClass>; - Consumer: React.ComponentClass>; -}; - -export type ProviderProps = { - value: T; - children?: React.ReactNode; - observedBits?: any, -}; - -export type ConsumerProps = { - children: RenderFn | [RenderFn]; - observedBits?: number; -}; diff --git a/node_modules/mini-create-react-context/package.json b/node_modules/mini-create-react-context/package.json deleted file mode 100644 index 58d492f..0000000 --- a/node_modules/mini-create-react-context/package.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "_from": "mini-create-react-context@^0.4.0", - "_id": "mini-create-react-context@0.4.1", - "_inBundle": false, - "_integrity": "sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ==", - "_location": "/mini-create-react-context", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "mini-create-react-context@^0.4.0", - "name": "mini-create-react-context", - "escapedName": "mini-create-react-context", - "rawSpec": "^0.4.0", - "saveSpec": null, - "fetchSpec": "^0.4.0" - }, - "_requiredBy": [ - "/react-router" - ], - "_resolved": "https://registry.npmjs.org/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz", - "_shasum": "072171561bfdc922da08a60c2197a497cc2d1d5e", - "_spec": "mini-create-react-context@^0.4.0", - "_where": "G:\\_comp_\\odsc\\orig\\AllNotes\\node_modules\\react-router", - "author": { - "name": "StringEpsilon" - }, - "bugs": { - "url": "https://github.com/StringEpsilon/mini-create-react-context/issues" - }, - "bundleDependencies": false, - "dependencies": { - "@babel/runtime": "^7.12.1", - "tiny-warning": "^1.0.3" - }, - "deprecated": false, - "description": "Smaller Polyfill for the proposed React context API", - "devDependencies": { - "@babel/core": "^7.12.3", - "@babel/plugin-proposal-class-properties": "^7.12.1", - "@babel/preset-env": "^7.12.1", - "@babel/preset-react": "^7.12.1", - "@babel/preset-typescript": "^7.12.1", - "@types/enzyme": "^3.10.5", - "@types/jest": "^26.0.10", - "@types/react": "^16.9.46", - "@wessberg/rollup-plugin-ts": "^1.3.6", - "babel-jest": "^25.5.1", - "enzyme": "^3.11.0", - "enzyme-adapter-react-16": "^1.15.5", - "enzyme-to-json": "^3.6.1", - "jest": "^26.6.0", - "prop-types": "^15.6.0", - "raf": "^3.4.1", - "react": "^16.13.1", - "react-dom": "^16.13.1", - "rollup": "^2.32.1", - "rollup-plugin-commonjs": "^10.0.1", - "rollup-plugin-node-resolve": "^5.2.0", - "rollup-plugin-terser": "^7.0.2", - "typescript": "^4.0.3" - }, - "files": [ - "dist/**" - ], - "homepage": "https://github.com/StringEpsilon/mini-create-react-context#readme", - "jest": { - "snapshotSerializers": [ - "enzyme-to-json/serializer" - ] - }, - "keywords": [ - "react", - "context", - "contextTypes", - "polyfill", - "ponyfill" - ], - "license": "MIT", - "main": "dist/cjs/index.js", - "module": "dist/esm/index.js", - "name": "mini-create-react-context", - "peerDependencies": { - "prop-types": "^15.0.0", - "react": "^0.14.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/StringEpsilon/mini-create-react-context.git" - }, - "scripts": { - "build": "rollup -c rollup.config.js", - "prepublish": "npm run build", - "test": "jest" - }, - "types": "dist/index.d.ts", - "version": "0.4.1" -} diff --git a/node_modules/object-assign/index.js b/node_modules/object-assign/index.js deleted file mode 100644 index 0930cf8..0000000 --- a/node_modules/object-assign/index.js +++ /dev/null @@ -1,90 +0,0 @@ -/* -object-assign -(c) Sindre Sorhus -@license MIT -*/ - -'use strict'; -/* eslint-disable no-unused-vars */ -var getOwnPropertySymbols = Object.getOwnPropertySymbols; -var hasOwnProperty = Object.prototype.hasOwnProperty; -var propIsEnumerable = Object.prototype.propertyIsEnumerable; - -function toObject(val) { - if (val === null || val === undefined) { - throw new TypeError('Object.assign cannot be called with null or undefined'); - } - - return Object(val); -} - -function shouldUseNative() { - try { - if (!Object.assign) { - return false; - } - - // Detect buggy property enumeration order in older V8 versions. - - // https://bugs.chromium.org/p/v8/issues/detail?id=4118 - var test1 = new String('abc'); // eslint-disable-line no-new-wrappers - test1[5] = 'de'; - if (Object.getOwnPropertyNames(test1)[0] === '5') { - return false; - } - - // https://bugs.chromium.org/p/v8/issues/detail?id=3056 - var test2 = {}; - for (var i = 0; i < 10; i++) { - test2['_' + String.fromCharCode(i)] = i; - } - var order2 = Object.getOwnPropertyNames(test2).map(function (n) { - return test2[n]; - }); - if (order2.join('') !== '0123456789') { - return false; - } - - // https://bugs.chromium.org/p/v8/issues/detail?id=3056 - var test3 = {}; - 'abcdefghijklmnopqrst'.split('').forEach(function (letter) { - test3[letter] = letter; - }); - if (Object.keys(Object.assign({}, test3)).join('') !== - 'abcdefghijklmnopqrst') { - return false; - } - - return true; - } catch (err) { - // We don't expect any of the above to throw, but better to be safe. - return false; - } -} - -module.exports = shouldUseNative() ? Object.assign : function (target, source) { - var from; - var to = toObject(target); - var symbols; - - for (var s = 1; s < arguments.length; s++) { - from = Object(arguments[s]); - - for (var key in from) { - if (hasOwnProperty.call(from, key)) { - to[key] = from[key]; - } - } - - if (getOwnPropertySymbols) { - symbols = getOwnPropertySymbols(from); - for (var i = 0; i < symbols.length; i++) { - if (propIsEnumerable.call(from, symbols[i])) { - to[symbols[i]] = from[symbols[i]]; - } - } - } - } - - return to; -}; diff --git a/node_modules/object-assign/license b/node_modules/object-assign/license deleted file mode 100644 index 654d0bf..0000000 --- a/node_modules/object-assign/license +++ /dev/null @@ -1,21 +0,0 @@ -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. diff --git a/node_modules/object-assign/package.json b/node_modules/object-assign/package.json deleted file mode 100644 index 385746a..0000000 --- a/node_modules/object-assign/package.json +++ /dev/null @@ -1,74 +0,0 @@ -{ - "_from": "object-assign@^4.1.1", - "_id": "object-assign@4.1.1", - "_inBundle": false, - "_integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "_location": "/object-assign", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "object-assign@^4.1.1", - "name": "object-assign", - "escapedName": "object-assign", - "rawSpec": "^4.1.1", - "saveSpec": null, - "fetchSpec": "^4.1.1" - }, - "_requiredBy": [ - "/prop-types" - ], - "_resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "_shasum": "2109adc7965887cfc05cbbd442cac8bfbb360863", - "_spec": "object-assign@^4.1.1", - "_where": "G:\\_comp_\\odsc\\orig\\AllNotes\\node_modules\\prop-types", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "sindresorhus.com" - }, - "bugs": { - "url": "https://github.com/sindresorhus/object-assign/issues" - }, - "bundleDependencies": false, - "deprecated": false, - "description": "ES2015 `Object.assign()` ponyfill", - "devDependencies": { - "ava": "^0.16.0", - "lodash": "^4.16.4", - "matcha": "^0.7.0", - "xo": "^0.16.0" - }, - "engines": { - "node": ">=0.10.0" - }, - "files": [ - "index.js" - ], - "homepage": "https://github.com/sindresorhus/object-assign#readme", - "keywords": [ - "object", - "assign", - "extend", - "properties", - "es2015", - "ecmascript", - "harmony", - "ponyfill", - "prollyfill", - "polyfill", - "shim", - "browser" - ], - "license": "MIT", - "name": "object-assign", - "repository": { - "type": "git", - "url": "git+https://github.com/sindresorhus/object-assign.git" - }, - "scripts": { - "bench": "matcha bench.js", - "test": "xo && ava" - }, - "version": "4.1.1" -} diff --git a/node_modules/object-assign/readme.md b/node_modules/object-assign/readme.md deleted file mode 100644 index 1be09d3..0000000 --- a/node_modules/object-assign/readme.md +++ /dev/null @@ -1,61 +0,0 @@ -# object-assign [![Build Status](https://travis-ci.org/sindresorhus/object-assign.svg?branch=master)](https://travis-ci.org/sindresorhus/object-assign) - -> ES2015 [`Object.assign()`](http://www.2ality.com/2014/01/object-assign.html) [ponyfill](https://ponyfill.com) - - -## Use the built-in - -Node.js 4 and up, as well as every evergreen browser (Chrome, Edge, Firefox, Opera, Safari), -support `Object.assign()` :tada:. If you target only those environments, then by all -means, use `Object.assign()` instead of this package. - - -## Install - -``` -$ npm install --save object-assign -``` - - -## Usage - -```js -const objectAssign = require('object-assign'); - -objectAssign({foo: 0}, {bar: 1}); -//=> {foo: 0, bar: 1} - -// multiple sources -objectAssign({foo: 0}, {bar: 1}, {baz: 2}); -//=> {foo: 0, bar: 1, baz: 2} - -// overwrites equal keys -objectAssign({foo: 0}, {foo: 1}, {foo: 2}); -//=> {foo: 2} - -// ignores null and undefined sources -objectAssign({foo: 0}, null, {bar: 1}, undefined); -//=> {foo: 0, bar: 1} -``` - - -## API - -### objectAssign(target, [source, ...]) - -Assigns enumerable own properties of `source` objects to the `target` object and returns the `target` object. Additional `source` objects will overwrite previous ones. - - -## Resources - -- [ES2015 spec - Object.assign](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.assign) - - -## Related - -- [deep-assign](https://github.com/sindresorhus/deep-assign) - Recursive `Object.assign()` - - -## License - -MIT © [Sindre Sorhus](https://sindresorhus.com) diff --git a/node_modules/path-to-regexp/History.md b/node_modules/path-to-regexp/History.md deleted file mode 100644 index abe4a65..0000000 --- a/node_modules/path-to-regexp/History.md +++ /dev/null @@ -1,158 +0,0 @@ -1.7.0 / 2016-11-08 -================== - - * Allow a `delimiter` option to be passed in with `tokensToRegExp` which will be used for "non-ending" token match situations - -1.6.0 / 2016-10-03 -================== - - * Populate `RegExp.keys` when using the `tokensToRegExp` method (making it consistent with the main export) - * Allow a `delimiter` option to be passed in with `parse` - * Updated TypeScript definition with `Keys` and `Options` updated - -1.5.3 / 2016-06-15 -================== - - * Add `\\` to the ignore character group to avoid backtracking on mismatched parens - -1.5.2 / 2016-06-15 -================== - - * Escape `\\` in string segments of regexp - -1.5.1 / 2016-06-08 -================== - - * Add `index.d.ts` to NPM package - -1.5.0 / 2016-05-20 -================== - - * Handle partial token segments (better) - * Allow compile to handle asterisk token segments - -1.4.0 / 2016-05-18 -================== - - * Handle RegExp unions in path matching groups - -1.3.0 / 2016-05-08 -================== - - * Clarify README language and named parameter token support - * Support advanced Closure Compiler with type annotations - * Add pretty paths options to compiled function output - * Add TypeScript definition to project - * Improved prefix handling with non-complete segment parameters (E.g. `/:foo?-bar`) - -1.2.1 / 2015-08-17 -================== - - * Encode values before validation with path compilation function - * More examples of using compilation in README - -1.2.0 / 2015-05-20 -================== - - * Add support for matching an asterisk (`*`) as an unnamed match everything group (`(.*)`) - -1.1.1 / 2015-05-11 -================== - - * Expose methods for working with path tokens - -1.1.0 / 2015-05-09 -================== - - * Expose the parser implementation to consumers - * Implement a compiler function to generate valid strings - * Huge refactor of tests to be more DRY and cover new parse and compile functions - * Use chai in tests - * Add .editorconfig - -1.0.3 / 2015-01-17 -================== - - * Optimised function runtime - * Added `files` to `package.json` - -1.0.2 / 2014-12-17 -================== - - * Use `Array.isArray` shim - * Remove ES5 incompatible code - * Fixed repository path - * Added new readme badges - -1.0.1 / 2014-08-27 -================== - - * Ensure installation works correctly on 0.8 - -1.0.0 / 2014-08-17 -================== - - * No more API changes - -0.2.5 / 2014-08-07 -================== - - * Allow keys parameter to be omitted - -0.2.4 / 2014-08-02 -================== - - * Code coverage badge - * Updated readme - * Attach keys to the generated regexp - -0.2.3 / 2014-07-09 -================== - - * Add MIT license - -0.2.2 / 2014-07-06 -================== - - * A passed in trailing slash in non-strict mode will become optional - * In non-end mode, the optional trailing slash will only match at the end - -0.2.1 / 2014-06-11 -================== - - * Fixed a major capturing group regexp regression - -0.2.0 / 2014-06-09 -================== - - * Improved support for arrays - * Improved support for regexps - * Better support for non-ending strict mode matches with a trailing slash - * Travis CI support - * Block using regexp special characters in the path - * Removed support for the asterisk to match all - * New support for parameter suffixes - `*`, `+` and `?` - * Updated readme - * Provide delimiter information with keys array - -0.1.2 / 2014-03-10 -================== - - * Move testing dependencies to `devDependencies` - -0.1.1 / 2014-03-10 -================== - - * Match entire substring with `options.end` - * Properly handle ending and non-ending matches - -0.1.0 / 2014-03-06 -================== - - * Add `options.end` - -0.0.2 / 2013-02-10 -================== - - * Update to match current express - * Add .license property to component.json diff --git a/node_modules/path-to-regexp/LICENSE b/node_modules/path-to-regexp/LICENSE deleted file mode 100644 index 983fbe8..0000000 --- a/node_modules/path-to-regexp/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -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. diff --git a/node_modules/path-to-regexp/Readme.md b/node_modules/path-to-regexp/Readme.md deleted file mode 100644 index 379ecf4..0000000 --- a/node_modules/path-to-regexp/Readme.md +++ /dev/null @@ -1,257 +0,0 @@ -# Path-to-RegExp - -> Turn an Express-style path string such as `/user/:name` into a regular expression. - -[![NPM version][npm-image]][npm-url] -[![Build status][travis-image]][travis-url] -[![Test coverage][coveralls-image]][coveralls-url] -[![Dependency Status][david-image]][david-url] -[![License][license-image]][license-url] -[![Downloads][downloads-image]][downloads-url] - -## Installation - -``` -npm install path-to-regexp --save -``` - -## Usage - -```javascript -var pathToRegexp = require('path-to-regexp') - -// pathToRegexp(path, keys, options) -// pathToRegexp.parse(path) -// pathToRegexp.compile(path) -``` - -- **path** An Express-style string, an array of strings, or a regular expression. -- **keys** An array to be populated with the keys found in the path. -- **options** - - **sensitive** When `true` the route will be case sensitive. (default: `false`) - - **strict** When `false` the trailing slash is optional. (default: `false`) - - **end** When `false` the path will match at the beginning. (default: `true`) - - **delimiter** Set the default delimiter for repeat parameters. (default: `'/'`) - -```javascript -var keys = [] -var re = pathToRegexp('/foo/:bar', keys) -// re = /^\/foo\/([^\/]+?)\/?$/i -// keys = [{ name: 'bar', prefix: '/', delimiter: '/', optional: false, repeat: false, pattern: '[^\\/]+?' }] -``` - -**Please note:** The `RegExp` returned by `path-to-regexp` is intended for use with pathnames or hostnames. It can not handle the query strings or fragments of a URL. - -### Parameters - -The path string can be used to define parameters and populate the keys. - -#### Named Parameters - -Named parameters are defined by prefixing a colon to the parameter name (`:foo`). By default, the parameter will match until the following path segment. - -```js -var re = pathToRegexp('/:foo/:bar', keys) -// keys = [{ name: 'foo', prefix: '/', ... }, { name: 'bar', prefix: '/', ... }] - -re.exec('/test/route') -//=> ['/test/route', 'test', 'route'] -``` - -**Please note:** Named parameters must be made up of "word characters" (`[A-Za-z0-9_]`). - -```js -var re = pathToRegexp('/(apple-)?icon-:res(\\d+).png', keys) -// keys = [{ name: 0, prefix: '/', ... }, { name: 'res', prefix: '', ... }] - -re.exec('/icon-76.png') -//=> ['/icon-76.png', undefined, '76'] -``` - -#### Modified Parameters - -##### Optional - -Parameters can be suffixed with a question mark (`?`) to make the parameter optional. This will also make the prefix optional. - -```js -var re = pathToRegexp('/:foo/:bar?', keys) -// keys = [{ name: 'foo', ... }, { name: 'bar', delimiter: '/', optional: true, repeat: false }] - -re.exec('/test') -//=> ['/test', 'test', undefined] - -re.exec('/test/route') -//=> ['/test', 'test', 'route'] -``` - -##### Zero or more - -Parameters can be suffixed with an asterisk (`*`) to denote a zero or more parameter matches. The prefix is taken into account for each match. - -```js -var re = pathToRegexp('/:foo*', keys) -// keys = [{ name: 'foo', delimiter: '/', optional: true, repeat: true }] - -re.exec('/') -//=> ['/', undefined] - -re.exec('/bar/baz') -//=> ['/bar/baz', 'bar/baz'] -``` - -##### One or more - -Parameters can be suffixed with a plus sign (`+`) to denote a one or more parameter matches. The prefix is taken into account for each match. - -```js -var re = pathToRegexp('/:foo+', keys) -// keys = [{ name: 'foo', delimiter: '/', optional: false, repeat: true }] - -re.exec('/') -//=> null - -re.exec('/bar/baz') -//=> ['/bar/baz', 'bar/baz'] -``` - -#### Custom Match Parameters - -All parameters can be provided a custom regexp, which overrides the default (`[^\/]+`). - -```js -var re = pathToRegexp('/:foo(\\d+)', keys) -// keys = [{ name: 'foo', ... }] - -re.exec('/123') -//=> ['/123', '123'] - -re.exec('/abc') -//=> null -``` - -**Please note:** Backslashes need to be escaped with another backslash in strings. - -#### Unnamed Parameters - -It is possible to write an unnamed parameter that only consists of a matching group. It works the same as a named parameter, except it will be numerically indexed. - -```js -var re = pathToRegexp('/:foo/(.*)', keys) -// keys = [{ name: 'foo', ... }, { name: 0, ... }] - -re.exec('/test/route') -//=> ['/test/route', 'test', 'route'] -``` - -#### Asterisk - -An asterisk can be used for matching everything. It is equivalent to an unnamed matching group of `(.*)`. - -```js -var re = pathToRegexp('/foo/*', keys) -// keys = [{ name: '0', ... }] - -re.exec('/foo/bar/baz') -//=> ['/foo/bar/baz', 'bar/baz'] -``` - -### Parse - -The parse function is exposed via `pathToRegexp.parse`. This will return an array of strings and keys. - -```js -var tokens = pathToRegexp.parse('/route/:foo/(.*)') - -console.log(tokens[0]) -//=> "/route" - -console.log(tokens[1]) -//=> { name: 'foo', prefix: '/', delimiter: '/', optional: false, repeat: false, pattern: '[^\\/]+?' } - -console.log(tokens[2]) -//=> { name: 0, prefix: '/', delimiter: '/', optional: false, repeat: false, pattern: '.*' } -``` - -**Note:** This method only works with Express-style strings. - -### Compile ("Reverse" Path-To-RegExp) - -Path-To-RegExp exposes a compile function for transforming an Express-style path into a valid path. - -```js -var toPath = pathToRegexp.compile('/user/:id') - -toPath({ id: 123 }) //=> "/user/123" -toPath({ id: 'café' }) //=> "/user/caf%C3%A9" -toPath({ id: '/' }) //=> "/user/%2F" - -toPath({ id: ':' }) //=> "/user/%3A" -toPath({ id: ':' }, { pretty: true }) //=> "/user/:" - -var toPathRepeated = pathToRegexp.compile('/:segment+') - -toPathRepeated({ segment: 'foo' }) //=> "/foo" -toPathRepeated({ segment: ['a', 'b', 'c'] }) //=> "/a/b/c" - -var toPathRegexp = pathToRegexp.compile('/user/:id(\\d+)') - -toPathRegexp({ id: 123 }) //=> "/user/123" -toPathRegexp({ id: '123' }) //=> "/user/123" -toPathRegexp({ id: 'abc' }) //=> Throws `TypeError`. -``` - -**Note:** The generated function will throw on invalid input. It will do all necessary checks to ensure the generated path is valid. This method only works with strings. - -### Working with Tokens - -Path-To-RegExp exposes the two functions used internally that accept an array of tokens. - -* `pathToRegexp.tokensToRegExp(tokens, options)` Transform an array of tokens into a matching regular expression. -* `pathToRegexp.tokensToFunction(tokens)` Transform an array of tokens into a path generator function. - -#### Token Information - -* `name` The name of the token (`string` for named or `number` for index) -* `prefix` The prefix character for the segment (`/` or `.`) -* `delimiter` The delimiter for the segment (same as prefix or `/`) -* `optional` Indicates the token is optional (`boolean`) -* `repeat` Indicates the token is repeated (`boolean`) -* `partial` Indicates this token is a partial path segment (`boolean`) -* `pattern` The RegExp used to match this token (`string`) -* `asterisk` Indicates the token is an `*` match (`boolean`) - -## Compatibility with Express <= 4.x - -Path-To-RegExp breaks compatibility with Express <= `4.x`: - -* No longer a direct conversion to a RegExp with sugar on top - it's a path matcher with named and unnamed matching groups - * It's unlikely you previously abused this feature, it's rare and you could always use a RegExp instead -* All matching RegExp special characters can be used in a matching group. E.g. `/:user(.*)` - * Other RegExp features are not support - no nested matching groups, non-capturing groups or look aheads -* Parameters have suffixes that augment meaning - `*`, `+` and `?`. E.g. `/:user*` - -## TypeScript - -Includes a [`.d.ts`](index.d.ts) file for TypeScript users. - -## Live Demo - -You can see a live demo of this library in use at [express-route-tester](http://forbeslindesay.github.com/express-route-tester/). - -## License - -MIT - -[npm-image]: https://img.shields.io/npm/v/path-to-regexp.svg?style=flat -[npm-url]: https://npmjs.org/package/path-to-regexp -[travis-image]: https://img.shields.io/travis/pillarjs/path-to-regexp.svg?style=flat -[travis-url]: https://travis-ci.org/pillarjs/path-to-regexp -[coveralls-image]: https://img.shields.io/coveralls/pillarjs/path-to-regexp.svg?style=flat -[coveralls-url]: https://coveralls.io/r/pillarjs/path-to-regexp?branch=master -[david-image]: http://img.shields.io/david/pillarjs/path-to-regexp.svg?style=flat -[david-url]: https://david-dm.org/pillarjs/path-to-regexp -[license-image]: http://img.shields.io/npm/l/path-to-regexp.svg?style=flat -[license-url]: LICENSE.md -[downloads-image]: http://img.shields.io/npm/dm/path-to-regexp.svg?style=flat -[downloads-url]: https://npmjs.org/package/path-to-regexp diff --git a/node_modules/path-to-regexp/index.d.ts b/node_modules/path-to-regexp/index.d.ts deleted file mode 100644 index 4a1f65c..0000000 --- a/node_modules/path-to-regexp/index.d.ts +++ /dev/null @@ -1,84 +0,0 @@ -declare function pathToRegexp (path: pathToRegexp.Path, options?: pathToRegexp.RegExpOptions & pathToRegexp.ParseOptions): pathToRegexp.PathRegExp; -declare function pathToRegexp (path: pathToRegexp.Path, keys?: pathToRegexp.Key[], options?: pathToRegexp.RegExpOptions & pathToRegexp.ParseOptions): pathToRegexp.PathRegExp; - -declare namespace pathToRegexp { - export interface PathRegExp extends RegExp { - // An array to be populated with the keys found in the path. - keys: Key[]; - } - - export interface RegExpOptions { - /** - * When `true` the route will be case sensitive. (default: `false`) - */ - sensitive?: boolean; - /** - * When `false` the trailing slash is optional. (default: `false`) - */ - strict?: boolean; - /** - * When `false` the path will match at the beginning. (default: `true`) - */ - end?: boolean; - /** - * Sets the final character for non-ending optimistic matches. (default: `/`) - */ - delimiter?: string; - } - - export interface ParseOptions { - /** - * Set the default delimiter for repeat parameters. (default: `'/'`) - */ - delimiter?: string; - } - - export interface TokensToFunctionOptions { - /** - * When `true` the regexp will be case sensitive. (default: `false`) - */ - sensitive?: boolean; - } - - /** - * Parse an Express-style path into an array of tokens. - */ - export function parse (path: string, options?: ParseOptions): Token[]; - - /** - * Transforming an Express-style path into a valid path. - */ - export function compile (path: string, options?: ParseOptions & TokensToFunctionOptions): PathFunction; - - /** - * Transform an array of tokens into a path generator function. - */ - export function tokensToFunction (tokens: Token[], options?: TokensToFunctionOptions): PathFunction; - - /** - * Transform an array of tokens into a matching regular expression. - */ - export function tokensToRegExp (tokens: Token[], options?: RegExpOptions): PathRegExp; - export function tokensToRegExp (tokens: Token[], keys?: Key[], options?: RegExpOptions): PathRegExp; - - export interface Key { - name: string | number; - prefix: string; - delimiter: string; - optional: boolean; - repeat: boolean; - pattern: string; - partial: boolean; - asterisk: boolean; - } - - interface PathFunctionOptions { - pretty?: boolean; - } - - export type Token = string | Key; - export type Path = string | RegExp | Array; - export type PathFunction = (data?: Object, options?: PathFunctionOptions) => string; -} - -export = pathToRegexp; diff --git a/node_modules/path-to-regexp/index.js b/node_modules/path-to-regexp/index.js deleted file mode 100644 index e485afe..0000000 --- a/node_modules/path-to-regexp/index.js +++ /dev/null @@ -1,426 +0,0 @@ -var isarray = require('isarray') - -/** - * Expose `pathToRegexp`. - */ -module.exports = pathToRegexp -module.exports.parse = parse -module.exports.compile = compile -module.exports.tokensToFunction = tokensToFunction -module.exports.tokensToRegExp = tokensToRegExp - -/** - * The main path matching regexp utility. - * - * @type {RegExp} - */ -var PATH_REGEXP = new RegExp([ - // Match escaped characters that would otherwise appear in future matches. - // This allows the user to escape special characters that won't transform. - '(\\\\.)', - // Match Express-style parameters and un-named parameters with a prefix - // and optional suffixes. Matches appear as: - // - // "/:test(\\d+)?" => ["/", "test", "\d+", undefined, "?", undefined] - // "/route(\\d+)" => [undefined, undefined, undefined, "\d+", undefined, undefined] - // "/*" => ["/", undefined, undefined, undefined, undefined, "*"] - '([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))' -].join('|'), 'g') - -/** - * Parse a string for the raw tokens. - * - * @param {string} str - * @param {Object=} options - * @return {!Array} - */ -function parse (str, options) { - var tokens = [] - var key = 0 - var index = 0 - var path = '' - var defaultDelimiter = options && options.delimiter || '/' - var res - - while ((res = PATH_REGEXP.exec(str)) != null) { - var m = res[0] - var escaped = res[1] - var offset = res.index - path += str.slice(index, offset) - index = offset + m.length - - // Ignore already escaped sequences. - if (escaped) { - path += escaped[1] - continue - } - - var next = str[index] - var prefix = res[2] - var name = res[3] - var capture = res[4] - var group = res[5] - var modifier = res[6] - var asterisk = res[7] - - // Push the current path onto the tokens. - if (path) { - tokens.push(path) - path = '' - } - - var partial = prefix != null && next != null && next !== prefix - var repeat = modifier === '+' || modifier === '*' - var optional = modifier === '?' || modifier === '*' - var delimiter = res[2] || defaultDelimiter - var pattern = capture || group - - tokens.push({ - name: name || key++, - prefix: prefix || '', - delimiter: delimiter, - optional: optional, - repeat: repeat, - partial: partial, - asterisk: !!asterisk, - pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?') - }) - } - - // Match any characters still remaining. - if (index < str.length) { - path += str.substr(index) - } - - // If the path exists, push it onto the end. - if (path) { - tokens.push(path) - } - - return tokens -} - -/** - * Compile a string to a template function for the path. - * - * @param {string} str - * @param {Object=} options - * @return {!function(Object=, Object=)} - */ -function compile (str, options) { - return tokensToFunction(parse(str, options), options) -} - -/** - * Prettier encoding of URI path segments. - * - * @param {string} - * @return {string} - */ -function encodeURIComponentPretty (str) { - return encodeURI(str).replace(/[\/?#]/g, function (c) { - return '%' + c.charCodeAt(0).toString(16).toUpperCase() - }) -} - -/** - * Encode the asterisk parameter. Similar to `pretty`, but allows slashes. - * - * @param {string} - * @return {string} - */ -function encodeAsterisk (str) { - return encodeURI(str).replace(/[?#]/g, function (c) { - return '%' + c.charCodeAt(0).toString(16).toUpperCase() - }) -} - -/** - * Expose a method for transforming tokens into the path function. - */ -function tokensToFunction (tokens, options) { - // Compile all the tokens into regexps. - var matches = new Array(tokens.length) - - // Compile all the patterns before compilation. - for (var i = 0; i < tokens.length; i++) { - if (typeof tokens[i] === 'object') { - matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options)) - } - } - - return function (obj, opts) { - var path = '' - var data = obj || {} - var options = opts || {} - var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent - - for (var i = 0; i < tokens.length; i++) { - var token = tokens[i] - - if (typeof token === 'string') { - path += token - - continue - } - - var value = data[token.name] - var segment - - if (value == null) { - if (token.optional) { - // Prepend partial segment prefixes. - if (token.partial) { - path += token.prefix - } - - continue - } else { - throw new TypeError('Expected "' + token.name + '" to be defined') - } - } - - if (isarray(value)) { - if (!token.repeat) { - throw new TypeError('Expected "' + token.name + '" to not repeat, but received `' + JSON.stringify(value) + '`') - } - - if (value.length === 0) { - if (token.optional) { - continue - } else { - throw new TypeError('Expected "' + token.name + '" to not be empty') - } - } - - for (var j = 0; j < value.length; j++) { - segment = encode(value[j]) - - if (!matches[i].test(segment)) { - throw new TypeError('Expected all "' + token.name + '" to match "' + token.pattern + '", but received `' + JSON.stringify(segment) + '`') - } - - path += (j === 0 ? token.prefix : token.delimiter) + segment - } - - continue - } - - segment = token.asterisk ? encodeAsterisk(value) : encode(value) - - if (!matches[i].test(segment)) { - throw new TypeError('Expected "' + token.name + '" to match "' + token.pattern + '", but received "' + segment + '"') - } - - path += token.prefix + segment - } - - return path - } -} - -/** - * Escape a regular expression string. - * - * @param {string} str - * @return {string} - */ -function escapeString (str) { - return str.replace(/([.+*?=^!:${}()[\]|\/\\])/g, '\\$1') -} - -/** - * Escape the capturing group by escaping special characters and meaning. - * - * @param {string} group - * @return {string} - */ -function escapeGroup (group) { - return group.replace(/([=!:$\/()])/g, '\\$1') -} - -/** - * Attach the keys as a property of the regexp. - * - * @param {!RegExp} re - * @param {Array} keys - * @return {!RegExp} - */ -function attachKeys (re, keys) { - re.keys = keys - return re -} - -/** - * Get the flags for a regexp from the options. - * - * @param {Object} options - * @return {string} - */ -function flags (options) { - return options && options.sensitive ? '' : 'i' -} - -/** - * Pull out keys from a regexp. - * - * @param {!RegExp} path - * @param {!Array} keys - * @return {!RegExp} - */ -function regexpToRegexp (path, keys) { - // Use a negative lookahead to match only capturing groups. - var groups = path.source.match(/\((?!\?)/g) - - if (groups) { - for (var i = 0; i < groups.length; i++) { - keys.push({ - name: i, - prefix: null, - delimiter: null, - optional: false, - repeat: false, - partial: false, - asterisk: false, - pattern: null - }) - } - } - - return attachKeys(path, keys) -} - -/** - * Transform an array into a regexp. - * - * @param {!Array} path - * @param {Array} keys - * @param {!Object} options - * @return {!RegExp} - */ -function arrayToRegexp (path, keys, options) { - var parts = [] - - for (var i = 0; i < path.length; i++) { - parts.push(pathToRegexp(path[i], keys, options).source) - } - - var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options)) - - return attachKeys(regexp, keys) -} - -/** - * Create a path regexp from string input. - * - * @param {string} path - * @param {!Array} keys - * @param {!Object} options - * @return {!RegExp} - */ -function stringToRegexp (path, keys, options) { - return tokensToRegExp(parse(path, options), keys, options) -} - -/** - * Expose a function for taking tokens and returning a RegExp. - * - * @param {!Array} tokens - * @param {(Array|Object)=} keys - * @param {Object=} options - * @return {!RegExp} - */ -function tokensToRegExp (tokens, keys, options) { - if (!isarray(keys)) { - options = /** @type {!Object} */ (keys || options) - keys = [] - } - - options = options || {} - - var strict = options.strict - var end = options.end !== false - var route = '' - - // Iterate over the tokens and create our regexp string. - for (var i = 0; i < tokens.length; i++) { - var token = tokens[i] - - if (typeof token === 'string') { - route += escapeString(token) - } else { - var prefix = escapeString(token.prefix) - var capture = '(?:' + token.pattern + ')' - - keys.push(token) - - if (token.repeat) { - capture += '(?:' + prefix + capture + ')*' - } - - if (token.optional) { - if (!token.partial) { - capture = '(?:' + prefix + '(' + capture + '))?' - } else { - capture = prefix + '(' + capture + ')?' - } - } else { - capture = prefix + '(' + capture + ')' - } - - route += capture - } - } - - var delimiter = escapeString(options.delimiter || '/') - var endsWithDelimiter = route.slice(-delimiter.length) === delimiter - - // In non-strict mode we allow a slash at the end of match. If the path to - // match already ends with a slash, we remove it for consistency. The slash - // is valid at the end of a path match, not in the middle. This is important - // in non-ending mode, where "/test/" shouldn't match "/test//route". - if (!strict) { - route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?' - } - - if (end) { - route += '$' - } else { - // In non-ending mode, we need the capturing groups to match as much as - // possible by using a positive lookahead to the end or next path segment. - route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)' - } - - return attachKeys(new RegExp('^' + route, flags(options)), keys) -} - -/** - * Normalize the given path string, returning a regular expression. - * - * An empty array can be passed in for the keys, which will hold the - * placeholder key descriptions. For example, using `/user/:id`, `keys` will - * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`. - * - * @param {(string|RegExp|Array)} path - * @param {(Array|Object)=} keys - * @param {Object=} options - * @return {!RegExp} - */ -function pathToRegexp (path, keys, options) { - if (!isarray(keys)) { - options = /** @type {!Object} */ (keys || options) - keys = [] - } - - options = options || {} - - if (path instanceof RegExp) { - return regexpToRegexp(path, /** @type {!Array} */ (keys)) - } - - if (isarray(path)) { - return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options) - } - - return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options) -} diff --git a/node_modules/path-to-regexp/package.json b/node_modules/path-to-regexp/package.json deleted file mode 100644 index 33a5906..0000000 --- a/node_modules/path-to-regexp/package.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "_from": "path-to-regexp@^1.7.0", - "_id": "path-to-regexp@1.8.0", - "_inBundle": false, - "_integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", - "_location": "/path-to-regexp", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "path-to-regexp@^1.7.0", - "name": "path-to-regexp", - "escapedName": "path-to-regexp", - "rawSpec": "^1.7.0", - "saveSpec": null, - "fetchSpec": "^1.7.0" - }, - "_requiredBy": [ - "/react-router" - ], - "_resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "_shasum": "887b3ba9d84393e87a0a0b9f4cb756198b53548a", - "_spec": "path-to-regexp@^1.7.0", - "_where": "G:\\_comp_\\odsc\\orig\\AllNotes\\node_modules\\react-router", - "bugs": { - "url": "https://github.com/pillarjs/path-to-regexp/issues" - }, - "bundleDependencies": false, - "component": { - "scripts": { - "path-to-regexp": "index.js" - } - }, - "dependencies": { - "isarray": "0.0.1" - }, - "deprecated": false, - "description": "Express style path to RegExp utility", - "devDependencies": { - "chai": "^2.3.0", - "istanbul": "~0.3.0", - "mocha": "~2.2.4", - "standard": "~3.7.3", - "ts-node": "^0.5.5", - "typescript": "^1.8.7", - "typings": "^1.0.4" - }, - "files": [ - "index.js", - "index.d.ts", - "LICENSE" - ], - "homepage": "https://github.com/pillarjs/path-to-regexp#readme", - "keywords": [ - "express", - "regexp", - "route", - "routing" - ], - "license": "MIT", - "main": "index.js", - "name": "path-to-regexp", - "repository": { - "type": "git", - "url": "git+https://github.com/pillarjs/path-to-regexp.git" - }, - "scripts": { - "lint": "standard", - "prepublish": "typings install", - "test": "npm run lint && npm run test-cov", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --require ts-node/register -R spec test.ts", - "test-spec": "mocha --require ts-node/register -R spec --bail test.ts" - }, - "typings": "index.d.ts", - "version": "1.8.0" -} diff --git a/node_modules/prop-types/CHANGELOG.md b/node_modules/prop-types/CHANGELOG.md deleted file mode 100644 index 025d2f4..0000000 --- a/node_modules/prop-types/CHANGELOG.md +++ /dev/null @@ -1,92 +0,0 @@ -## 15.7.2 -* [Fix] ensure nullish values in `oneOf` do not crash ([#256](https://github.com/facebook/prop-types/issues/256)) -* [Fix] move `loose-envify` back to production deps, for browerify usage ([#203](https://github.com/facebook/prop-types/issues/203)) - -## 15.7.1 -* [Fix] avoid template literal syntax ([#255](https://github.com/facebook/prop-types/issues/255), [#254](https://github.com/facebook/prop-types/issues/254)) - -## 15.7.0 -* [New] Add `.elementType` ([#211](https://github.com/facebook/prop-types/pull/211)) -* [New] add `PropTypes.resetWarningCache` ([#178](https://github.com/facebook/prop-types/pull/178)) -* `oneOf`: improve warning when multiple arguments are supplied ([#244](https://github.com/facebook/prop-types/pull/244)) -* Fix `oneOf` when used with Symbols ([#224](https://github.com/facebook/prop-types/pull/224)) -* Avoid relying on `hasOwnProperty` being present on values' prototypes ([#112](https://github.com/facebook/prop-types/pull/112), [#187](https://github.com/facebook/prop-types/pull/187)) -* Improve readme ([#248](https://github.com/facebook/prop-types/pull/248), [#233](https://github.com/facebook/prop-types/pull/233)) -* Clean up mistaken runtime dep, swap envify for loose-envify ([#204](https://github.com/facebook/prop-types/pull/204)) - -## 15.6.2 -* Remove the `fbjs` dependency by inlining some helpers from it ([#194](https://github.com/facebook/prop-types/pull/194))) - -## 15.6.1 -* Fix an issue where outdated BSD license headers were still present in the published bundle [#162](https://github.com/facebook/prop-types/issues/162) - -## 15.6.0 - -* Switch from BSD + Patents to MIT license -* Add PropTypes.exact, like PropTypes.shape but warns on extra object keys. ([@thejameskyle](https://github.com/thejameskyle) and [@aweary](https://github.com/aweary) in [#41](https://github.com/facebook/prop-types/pull/41) and [#87](https://github.com/facebook/prop-types/pull/87)) - -## 15.5.10 - -* Fix a false positive warning when using a production UMD build of a third-party library with a DEV version of React. ([@gaearon](https://github.com/gaearon) in [#50](https://github.com/facebook/prop-types/pull/50)) - -## 15.5.9 - -* Add `loose-envify` Browserify transform for users who don't envify globally. ([@mridgway](https://github.com/mridgway) in [#45](https://github.com/facebook/prop-types/pull/45)) - -## 15.5.8 - -* Limit the manual PropTypes call warning count because it has false positives with React versions earlier than 15.2.0 in the 15.x branch and 0.14.9 in the 0.14.x branch. ([@gaearon](https://github.com/gaearon) in [#26](https://github.com/facebook/prop-types/pull/26)) - -## 15.5.7 - -* **Critical Bugfix:** Fix an accidental breaking change that caused errors in production when used through `React.PropTypes`. ([@gaearon](https://github.com/gaearon) in [#20](https://github.com/facebook/prop-types/pull/20)) -* Improve the size of production UMD build. ([@aweary](https://github.com/aweary) in [38ba18](https://github.com/facebook/prop-types/commit/38ba18a4a8f705f4b2b33c88204573ddd604f2d6) and [7882a7](https://github.com/facebook/prop-types/commit/7882a7285293db5f284bcf559b869fd2cd4c44d4)) - -## 15.5.6 - -**Note: this release has a critical issue and was deprecated. Please update to 15.5.7 or higher.** - -* Fix a markdown issue in README. ([@bvaughn](https://github.com/bvaughn) in [174f77](https://github.com/facebook/prop-types/commit/174f77a50484fa628593e84b871fb40eed78b69a)) - -## 15.5.5 - -**Note: this release has a critical issue and was deprecated. Please update to 15.5.7 or higher.** - -* Add missing documentation and license files. ([@bvaughn](https://github.com/bvaughn) in [0a53d3](https://github.com/facebook/prop-types/commit/0a53d3a34283ae1e2d3aa396632b6dc2a2061e6a)) - -## 15.5.4 - -**Note: this release has a critical issue and was deprecated. Please update to 15.5.7 or higher.** - -* Reduce the size of the UMD Build. ([@acdlite](https://github.com/acdlite) in [31e9344](https://github.com/facebook/prop-types/commit/31e9344ca3233159928da66295da17dad82db1a8)) -* Remove bad package url. ([@ljharb](https://github.com/ljharb) in [158198f](https://github.com/facebook/prop-types/commit/158198fd6c468a3f6f742e0e355e622b3914048a)) -* Remove the accidentally included typechecking code from the production build. - -## 15.5.3 - -**Note: this release has a critical issue and was deprecated. Please update to 15.5.7 or higher.** - -* Remove the accidentally included React package code from the UMD bundle. ([@acdlite](https://github.com/acdlite) in [df318bb](https://github.com/facebook/prop-types/commit/df318bba8a89bc5aadbb0292822cf4ed71d27ace)) - -## 15.5.2 - -**Note: this release has a critical issue and was deprecated. Please update to 15.5.7 or higher.** - -* Remove dependency on React for CommonJS entry point. ([@acdlite](https://github.com/acdlite) in [cae72bb](https://github.com/facebook/prop-types/commit/cae72bb281a3766c765e3624f6088c3713567e6d)) - - -## 15.5.1 - -**Note: this release has a critical issue and was deprecated. Please update to 15.5.7 or higher.** - -* Remove accidental uncompiled ES6 syntax in the published package. ([@acdlite](https://github.com/acdlite) in [e191963](https://github.com/facebook/react/commit/e1919638b39dd65eedd250a8bb649773ca61b6f1)) - -## 15.5.0 - -**Note: this release has a critical issue and was deprecated. Please update to 15.5.7 or higher.** - -* Initial release. - -## Before 15.5.0 - -PropTypes was previously included in React, but is now a separate package. For earlier history of PropTypes [see the React change log.](https://github.com/facebook/react/blob/master/CHANGELOG.md) diff --git a/node_modules/prop-types/LICENSE b/node_modules/prop-types/LICENSE deleted file mode 100644 index 188fb2b..0000000 --- a/node_modules/prop-types/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -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. diff --git a/node_modules/prop-types/README.md b/node_modules/prop-types/README.md deleted file mode 100644 index 1a23c9d..0000000 --- a/node_modules/prop-types/README.md +++ /dev/null @@ -1,296 +0,0 @@ -# prop-types [![Build Status](https://travis-ci.com/facebook/prop-types.svg?branch=master)](https://travis-ci.org/facebook/prop-types) - -Runtime type checking for React props and similar objects. - -You can use prop-types to document the intended types of properties passed to -components. React (and potentially other libraries—see the checkPropTypes() -reference below) will check props passed to your components against those -definitions, and warn in development if they don’t match. - -## Installation - -```shell -npm install --save prop-types -``` - -## Importing - -```js -import PropTypes from 'prop-types'; // ES6 -var PropTypes = require('prop-types'); // ES5 with npm -``` - -### CDN - -If you prefer to exclude `prop-types` from your application and use it -globally via `window.PropTypes`, the `prop-types` package provides -single-file distributions, which are hosted on the following CDNs: - -* [**unpkg**](https://unpkg.com/prop-types/) -```html - - - - - -``` - -* [**cdnjs**](https://cdnjs.com/libraries/prop-types) -```html - - - - - -``` - -To load a specific version of `prop-types` replace `15.6.0` with the version number. - -## Usage - -PropTypes was originally exposed as part of the React core module, and is -commonly used with React components. -Here is an example of using PropTypes with a React component, which also -documents the different validators provided: - -```js -import React from 'react'; -import PropTypes from 'prop-types'; - -class MyComponent extends React.Component { - render() { - // ... do things with the props - } -} - -MyComponent.propTypes = { - // You can declare that a prop is a specific JS primitive. By default, these - // are all optional. - optionalArray: PropTypes.array, - optionalBool: PropTypes.bool, - optionalFunc: PropTypes.func, - optionalNumber: PropTypes.number, - optionalObject: PropTypes.object, - optionalString: PropTypes.string, - optionalSymbol: PropTypes.symbol, - - // Anything that can be rendered: numbers, strings, elements or an array - // (or fragment) containing these types. - optionalNode: PropTypes.node, - - // A React element (ie. ). - optionalElement: PropTypes.element, - - // A React element type (ie. MyComponent). - optionalElementType: PropTypes.elementType, - - // You can also declare that a prop is an instance of a class. This uses - // JS's instanceof operator. - optionalMessage: PropTypes.instanceOf(Message), - - // You can ensure that your prop is limited to specific values by treating - // it as an enum. - optionalEnum: PropTypes.oneOf(['News', 'Photos']), - - // An object that could be one of many types - optionalUnion: PropTypes.oneOfType([ - PropTypes.string, - PropTypes.number, - PropTypes.instanceOf(Message) - ]), - - // An array of a certain type - optionalArrayOf: PropTypes.arrayOf(PropTypes.number), - - // An object with property values of a certain type - optionalObjectOf: PropTypes.objectOf(PropTypes.number), - - // You can chain any of the above with `isRequired` to make sure a warning - // is shown if the prop isn't provided. - - // An object taking on a particular shape - optionalObjectWithShape: PropTypes.shape({ - optionalProperty: PropTypes.string, - requiredProperty: PropTypes.number.isRequired - }), - - // An object with warnings on extra properties - optionalObjectWithStrictShape: PropTypes.exact({ - optionalProperty: PropTypes.string, - requiredProperty: PropTypes.number.isRequired - }), - - requiredFunc: PropTypes.func.isRequired, - - // A value of any data type - requiredAny: PropTypes.any.isRequired, - - // You can also specify a custom validator. It should return an Error - // object if the validation fails. Don't `console.warn` or throw, as this - // won't work inside `oneOfType`. - customProp: function(props, propName, componentName) { - if (!/matchme/.test(props[propName])) { - return new Error( - 'Invalid prop `' + propName + '` supplied to' + - ' `' + componentName + '`. Validation failed.' - ); - } - }, - - // You can also supply a custom validator to `arrayOf` and `objectOf`. - // It should return an Error object if the validation fails. The validator - // will be called for each key in the array or object. The first two - // arguments of the validator are the array or object itself, and the - // current item's key. - customArrayProp: PropTypes.arrayOf(function(propValue, key, componentName, location, propFullName) { - if (!/matchme/.test(propValue[key])) { - return new Error( - 'Invalid prop `' + propFullName + '` supplied to' + - ' `' + componentName + '`. Validation failed.' - ); - } - }) -}; -``` - -Refer to the [React documentation](https://facebook.github.io/react/docs/typechecking-with-proptypes.html) for more information. - -## Migrating from React.PropTypes - -Check out [Migrating from React.PropTypes](https://facebook.github.io/react/blog/2017/04/07/react-v15.5.0.html#migrating-from-react.proptypes) for details on how to migrate to `prop-types` from `React.PropTypes`. - -Note that this blog posts **mentions a codemod script that performs the conversion automatically**. - -There are also important notes below. - -## How to Depend on This Package? - -For apps, we recommend putting it in `dependencies` with a caret range. -For example: - -```js - "dependencies": { - "prop-types": "^15.5.7" - } -``` - -For libraries, we *also* recommend leaving it in `dependencies`: - -```js - "dependencies": { - "prop-types": "^15.5.7" - }, - "peerDependencies": { - "react": "^15.5.0" - } -``` - -**Note:** there are known issues in versions before 15.5.7 so we recommend using it as the minimal version. - -Make sure that the version range uses a caret (`^`) and thus is broad enough for npm to efficiently deduplicate packages. - -For UMD bundles of your components, make sure you **don’t** include `PropTypes` in the build. Usually this is done by marking it as an external (the specifics depend on your bundler), just like you do with React. - -## Compatibility - -### React 0.14 - -This package is compatible with **React 0.14.9**. Compared to 0.14.8 (which was released in March of 2016), there are no other changes in 0.14.9, so it should be a painless upgrade. - -```shell -# ATTENTION: Only run this if you still use React 0.14! -npm install --save react@^0.14.9 react-dom@^0.14.9 -``` - -### React 15+ - -This package is compatible with **React 15.3.0** and higher. - -``` -npm install --save react@^15.3.0 react-dom@^15.3.0 -``` - -### What happens on other React versions? - -It outputs warnings with the message below even though the developer doesn’t do anything wrong. Unfortunately there is no solution for this other than updating React to either 15.3.0 or higher, or 0.14.9 if you’re using React 0.14. - -## Difference from `React.PropTypes`: Don’t Call Validator Functions - -First of all, **which version of React are you using**? You might be seeing this message because a component library has updated to use `prop-types` package, but your version of React is incompatible with it. See the [above section](#compatibility) for more details. - -Are you using either React 0.14.9 or a version higher than React 15.3.0? Read on. - -When you migrate components to use the standalone `prop-types`, **all validator functions will start throwing an error if you call them directly**. This makes sure that nobody relies on them in production code, and it is safe to strip their implementations to optimize the bundle size. - -Code like this is still fine: - -```js -MyComponent.propTypes = { - myProp: PropTypes.bool -}; -``` - -However, code like this will not work with the `prop-types` package: - -```js -// Will not work with `prop-types` package! -var errorOrNull = PropTypes.bool(42, 'myProp', 'MyComponent', 'prop'); -``` - -It will throw an error: - -``` -Calling PropTypes validators directly is not supported by the `prop-types` package. -Use PropTypes.checkPropTypes() to call them. -``` - -(If you see **a warning** rather than an error with this message, please check the [above section about compatibility](#compatibility).) - -This is new behavior, and you will only encounter it when you migrate from `React.PropTypes` to the `prop-types` package. For the vast majority of components, this doesn’t matter, and if you didn’t see [this warning](https://facebook.github.io/react/warnings/dont-call-proptypes.html) in your components, your code is safe to migrate. This is not a breaking change in React because you are only opting into this change for a component by explicitly changing your imports to use `prop-types`. If you temporarily need the old behavior, you can keep using `React.PropTypes` until React 16. - -**If you absolutely need to trigger the validation manually**, call `PropTypes.checkPropTypes()`. Unlike the validators themselves, this function is safe to call in production, as it will be replaced by an empty function: - -```js -// Works with standalone PropTypes -PropTypes.checkPropTypes(MyComponent.propTypes, props, 'prop', 'MyComponent'); -``` -See below for more info. - -**You might also see this error** if you’re calling a `PropTypes` validator from your own custom `PropTypes` validator. In this case, the fix is to make sure that you are passing *all* of the arguments to the inner function. There is a more in-depth explanation of how to fix it [on this page](https://facebook.github.io/react/warnings/dont-call-proptypes.html#fixing-the-false-positive-in-third-party-proptypes). Alternatively, you can temporarily keep using `React.PropTypes` until React 16, as it would still only warn in this case. - -If you use a bundler like Browserify or Webpack, don’t forget to [follow these instructions](https://reactjs.org/docs/optimizing-performance.html#use-the-production-build) to correctly bundle your application in development or production mode. Otherwise you’ll ship unnecessary code to your users. - -## PropTypes.checkPropTypes - -React will automatically check the propTypes you set on the component, but if -you are using PropTypes without React then you may want to manually call -`PropTypes.checkPropTypes`, like so: - -```js -const myPropTypes = { - name: PropTypes.string, - age: PropTypes.number, - // ... define your prop validations -}; - -const props = { - name: 'hello', // is valid - age: 'world', // not valid -}; - -// Let's say your component is called 'MyComponent' - -// Works with standalone PropTypes -PropTypes.checkPropTypes(myPropTypes, props, 'age', 'MyComponent'); -// This will warn as follows: -// Warning: Failed prop type: Invalid prop `age` of type `string` supplied to -// `MyComponent`, expected `number`. -``` - -## PropTypes.resetWarningCache() - -`PropTypes.checkPropTypes(...)` only `console.error.log(...)`s a given message once. To reset the cache while testing call `PropTypes.resetWarningCache()` - -### License - -prop-types is [MIT licensed](./LICENSE). diff --git a/node_modules/prop-types/checkPropTypes.js b/node_modules/prop-types/checkPropTypes.js deleted file mode 100644 index 49111df..0000000 --- a/node_modules/prop-types/checkPropTypes.js +++ /dev/null @@ -1,102 +0,0 @@ -/** - * Copyright (c) 2013-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -'use strict'; - -var printWarning = function() {}; - -if (process.env.NODE_ENV !== 'production') { - var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret'); - var loggedTypeFailures = {}; - var has = Function.call.bind(Object.prototype.hasOwnProperty); - - printWarning = function(text) { - var message = 'Warning: ' + text; - if (typeof console !== 'undefined') { - console.error(message); - } - try { - // --- Welcome to debugging React --- - // This error was thrown as a convenience so that you can use this stack - // to find the callsite that caused this warning to fire. - throw new Error(message); - } catch (x) {} - }; -} - -/** - * Assert that the values match with the type specs. - * Error messages are memorized and will only be shown once. - * - * @param {object} typeSpecs Map of name to a ReactPropType - * @param {object} values Runtime values that need to be type-checked - * @param {string} location e.g. "prop", "context", "child context" - * @param {string} componentName Name of the component for error messages. - * @param {?Function} getStack Returns the component stack. - * @private - */ -function checkPropTypes(typeSpecs, values, location, componentName, getStack) { - if (process.env.NODE_ENV !== 'production') { - for (var typeSpecName in typeSpecs) { - if (has(typeSpecs, typeSpecName)) { - var error; - // Prop type validation may throw. In case they do, we don't want to - // fail the render phase where it didn't fail before. So we log it. - // After these have been cleaned up, we'll let them throw. - try { - // This is intentionally an invariant that gets caught. It's the same - // behavior as without this statement except with a better message. - if (typeof typeSpecs[typeSpecName] !== 'function') { - var err = Error( - (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + - 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' - ); - err.name = 'Invariant Violation'; - throw err; - } - error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret); - } catch (ex) { - error = ex; - } - if (error && !(error instanceof Error)) { - printWarning( - (componentName || 'React class') + ': type specification of ' + - location + ' `' + typeSpecName + '` is invalid; the type checker ' + - 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' + - 'You may have forgotten to pass an argument to the type checker ' + - 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + - 'shape all require an argument).' - ); - } - if (error instanceof Error && !(error.message in loggedTypeFailures)) { - // Only monitor this failure once because there tends to be a lot of the - // same error. - loggedTypeFailures[error.message] = true; - - var stack = getStack ? getStack() : ''; - - printWarning( - 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '') - ); - } - } - } - } -} - -/** - * Resets warning cache when testing. - * - * @private - */ -checkPropTypes.resetWarningCache = function() { - if (process.env.NODE_ENV !== 'production') { - loggedTypeFailures = {}; - } -} - -module.exports = checkPropTypes; diff --git a/node_modules/prop-types/factory.js b/node_modules/prop-types/factory.js deleted file mode 100644 index abdf8e6..0000000 --- a/node_modules/prop-types/factory.js +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Copyright (c) 2013-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -'use strict'; - -// React 15.5 references this module, and assumes PropTypes are still callable in production. -// Therefore we re-export development-only version with all the PropTypes checks here. -// However if one is migrating to the `prop-types` npm library, they will go through the -// `index.js` entry point, and it will branch depending on the environment. -var factory = require('./factoryWithTypeCheckers'); -module.exports = function(isValidElement) { - // It is still allowed in 15.5. - var throwOnDirectAccess = false; - return factory(isValidElement, throwOnDirectAccess); -}; diff --git a/node_modules/prop-types/factoryWithThrowingShims.js b/node_modules/prop-types/factoryWithThrowingShims.js deleted file mode 100644 index e5b2f9c..0000000 --- a/node_modules/prop-types/factoryWithThrowingShims.js +++ /dev/null @@ -1,64 +0,0 @@ -/** - * Copyright (c) 2013-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -'use strict'; - -var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret'); - -function emptyFunction() {} -function emptyFunctionWithReset() {} -emptyFunctionWithReset.resetWarningCache = emptyFunction; - -module.exports = function() { - function shim(props, propName, componentName, location, propFullName, secret) { - if (secret === ReactPropTypesSecret) { - // It is still safe when called from React. - return; - } - var err = new Error( - 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + - 'Use PropTypes.checkPropTypes() to call them. ' + - 'Read more at http://fb.me/use-check-prop-types' - ); - err.name = 'Invariant Violation'; - throw err; - }; - shim.isRequired = shim; - function getShim() { - return shim; - }; - // Important! - // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`. - var ReactPropTypes = { - array: shim, - bool: shim, - func: shim, - number: shim, - object: shim, - string: shim, - symbol: shim, - - any: shim, - arrayOf: getShim, - element: shim, - elementType: shim, - instanceOf: getShim, - node: shim, - objectOf: getShim, - oneOf: getShim, - oneOfType: getShim, - shape: getShim, - exact: getShim, - - checkPropTypes: emptyFunctionWithReset, - resetWarningCache: emptyFunction - }; - - ReactPropTypes.PropTypes = ReactPropTypes; - - return ReactPropTypes; -}; diff --git a/node_modules/prop-types/factoryWithTypeCheckers.js b/node_modules/prop-types/factoryWithTypeCheckers.js deleted file mode 100644 index 3711f0b..0000000 --- a/node_modules/prop-types/factoryWithTypeCheckers.js +++ /dev/null @@ -1,591 +0,0 @@ -/** - * Copyright (c) 2013-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -'use strict'; - -var ReactIs = require('react-is'); -var assign = require('object-assign'); - -var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret'); -var checkPropTypes = require('./checkPropTypes'); - -var has = Function.call.bind(Object.prototype.hasOwnProperty); -var printWarning = function() {}; - -if (process.env.NODE_ENV !== 'production') { - printWarning = function(text) { - var message = 'Warning: ' + text; - if (typeof console !== 'undefined') { - console.error(message); - } - try { - // --- Welcome to debugging React --- - // This error was thrown as a convenience so that you can use this stack - // to find the callsite that caused this warning to fire. - throw new Error(message); - } catch (x) {} - }; -} - -function emptyFunctionThatReturnsNull() { - return null; -} - -module.exports = function(isValidElement, throwOnDirectAccess) { - /* global Symbol */ - var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; - var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec. - - /** - * Returns the iterator method function contained on the iterable object. - * - * Be sure to invoke the function with the iterable as context: - * - * var iteratorFn = getIteratorFn(myIterable); - * if (iteratorFn) { - * var iterator = iteratorFn.call(myIterable); - * ... - * } - * - * @param {?object} maybeIterable - * @return {?function} - */ - function getIteratorFn(maybeIterable) { - var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]); - if (typeof iteratorFn === 'function') { - return iteratorFn; - } - } - - /** - * Collection of methods that allow declaration and validation of props that are - * supplied to React components. Example usage: - * - * var Props = require('ReactPropTypes'); - * var MyArticle = React.createClass({ - * propTypes: { - * // An optional string prop named "description". - * description: Props.string, - * - * // A required enum prop named "category". - * category: Props.oneOf(['News','Photos']).isRequired, - * - * // A prop named "dialog" that requires an instance of Dialog. - * dialog: Props.instanceOf(Dialog).isRequired - * }, - * render: function() { ... } - * }); - * - * A more formal specification of how these methods are used: - * - * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...) - * decl := ReactPropTypes.{type}(.isRequired)? - * - * Each and every declaration produces a function with the same signature. This - * allows the creation of custom validation functions. For example: - * - * var MyLink = React.createClass({ - * propTypes: { - * // An optional string or URI prop named "href". - * href: function(props, propName, componentName) { - * var propValue = props[propName]; - * if (propValue != null && typeof propValue !== 'string' && - * !(propValue instanceof URI)) { - * return new Error( - * 'Expected a string or an URI for ' + propName + ' in ' + - * componentName - * ); - * } - * } - * }, - * render: function() {...} - * }); - * - * @internal - */ - - var ANONYMOUS = '<>'; - - // Important! - // Keep this list in sync with production version in `./factoryWithThrowingShims.js`. - var ReactPropTypes = { - array: createPrimitiveTypeChecker('array'), - bool: createPrimitiveTypeChecker('boolean'), - func: createPrimitiveTypeChecker('function'), - number: createPrimitiveTypeChecker('number'), - object: createPrimitiveTypeChecker('object'), - string: createPrimitiveTypeChecker('string'), - symbol: createPrimitiveTypeChecker('symbol'), - - any: createAnyTypeChecker(), - arrayOf: createArrayOfTypeChecker, - element: createElementTypeChecker(), - elementType: createElementTypeTypeChecker(), - instanceOf: createInstanceTypeChecker, - node: createNodeChecker(), - objectOf: createObjectOfTypeChecker, - oneOf: createEnumTypeChecker, - oneOfType: createUnionTypeChecker, - shape: createShapeTypeChecker, - exact: createStrictShapeTypeChecker, - }; - - /** - * inlined Object.is polyfill to avoid requiring consumers ship their own - * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is - */ - /*eslint-disable no-self-compare*/ - function is(x, y) { - // SameValue algorithm - if (x === y) { - // Steps 1-5, 7-10 - // Steps 6.b-6.e: +0 != -0 - return x !== 0 || 1 / x === 1 / y; - } else { - // Step 6.a: NaN == NaN - return x !== x && y !== y; - } - } - /*eslint-enable no-self-compare*/ - - /** - * We use an Error-like object for backward compatibility as people may call - * PropTypes directly and inspect their output. However, we don't use real - * Errors anymore. We don't inspect their stack anyway, and creating them - * is prohibitively expensive if they are created too often, such as what - * happens in oneOfType() for any type before the one that matched. - */ - function PropTypeError(message) { - this.message = message; - this.stack = ''; - } - // Make `instanceof Error` still work for returned errors. - PropTypeError.prototype = Error.prototype; - - function createChainableTypeChecker(validate) { - if (process.env.NODE_ENV !== 'production') { - var manualPropTypeCallCache = {}; - var manualPropTypeWarningCount = 0; - } - function checkType(isRequired, props, propName, componentName, location, propFullName, secret) { - componentName = componentName || ANONYMOUS; - propFullName = propFullName || propName; - - if (secret !== ReactPropTypesSecret) { - if (throwOnDirectAccess) { - // New behavior only for users of `prop-types` package - var err = new Error( - 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + - 'Use `PropTypes.checkPropTypes()` to call them. ' + - 'Read more at http://fb.me/use-check-prop-types' - ); - err.name = 'Invariant Violation'; - throw err; - } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') { - // Old behavior for people using React.PropTypes - var cacheKey = componentName + ':' + propName; - if ( - !manualPropTypeCallCache[cacheKey] && - // Avoid spamming the console because they are often not actionable except for lib authors - manualPropTypeWarningCount < 3 - ) { - printWarning( - 'You are manually calling a React.PropTypes validation ' + - 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' + - 'and will throw in the standalone `prop-types` package. ' + - 'You may be seeing this warning due to a third-party PropTypes ' + - 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.' - ); - manualPropTypeCallCache[cacheKey] = true; - manualPropTypeWarningCount++; - } - } - } - if (props[propName] == null) { - if (isRequired) { - if (props[propName] === null) { - return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.')); - } - return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.')); - } - return null; - } else { - return validate(props, propName, componentName, location, propFullName); - } - } - - var chainedCheckType = checkType.bind(null, false); - chainedCheckType.isRequired = checkType.bind(null, true); - - return chainedCheckType; - } - - function createPrimitiveTypeChecker(expectedType) { - function validate(props, propName, componentName, location, propFullName, secret) { - var propValue = props[propName]; - var propType = getPropType(propValue); - if (propType !== expectedType) { - // `propValue` being instance of, say, date/regexp, pass the 'object' - // check, but we can offer a more precise error message here rather than - // 'of type `object`'. - var preciseType = getPreciseType(propValue); - - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.')); - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createAnyTypeChecker() { - return createChainableTypeChecker(emptyFunctionThatReturnsNull); - } - - function createArrayOfTypeChecker(typeChecker) { - function validate(props, propName, componentName, location, propFullName) { - if (typeof typeChecker !== 'function') { - return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.'); - } - var propValue = props[propName]; - if (!Array.isArray(propValue)) { - var propType = getPropType(propValue); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.')); - } - for (var i = 0; i < propValue.length; i++) { - var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret); - if (error instanceof Error) { - return error; - } - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createElementTypeChecker() { - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - if (!isValidElement(propValue)) { - var propType = getPropType(propValue); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.')); - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createElementTypeTypeChecker() { - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - if (!ReactIs.isValidElementType(propValue)) { - var propType = getPropType(propValue); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.')); - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createInstanceTypeChecker(expectedClass) { - function validate(props, propName, componentName, location, propFullName) { - if (!(props[propName] instanceof expectedClass)) { - var expectedClassName = expectedClass.name || ANONYMOUS; - var actualClassName = getClassName(props[propName]); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.')); - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createEnumTypeChecker(expectedValues) { - if (!Array.isArray(expectedValues)) { - if (process.env.NODE_ENV !== 'production') { - if (arguments.length > 1) { - printWarning( - 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' + - 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).' - ); - } else { - printWarning('Invalid argument supplied to oneOf, expected an array.'); - } - } - return emptyFunctionThatReturnsNull; - } - - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - for (var i = 0; i < expectedValues.length; i++) { - if (is(propValue, expectedValues[i])) { - return null; - } - } - - var valuesString = JSON.stringify(expectedValues, function replacer(key, value) { - var type = getPreciseType(value); - if (type === 'symbol') { - return String(value); - } - return value; - }); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.')); - } - return createChainableTypeChecker(validate); - } - - function createObjectOfTypeChecker(typeChecker) { - function validate(props, propName, componentName, location, propFullName) { - if (typeof typeChecker !== 'function') { - return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.'); - } - var propValue = props[propName]; - var propType = getPropType(propValue); - if (propType !== 'object') { - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.')); - } - for (var key in propValue) { - if (has(propValue, key)) { - var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); - if (error instanceof Error) { - return error; - } - } - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createUnionTypeChecker(arrayOfTypeCheckers) { - if (!Array.isArray(arrayOfTypeCheckers)) { - process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0; - return emptyFunctionThatReturnsNull; - } - - for (var i = 0; i < arrayOfTypeCheckers.length; i++) { - var checker = arrayOfTypeCheckers[i]; - if (typeof checker !== 'function') { - printWarning( - 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' + - 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.' - ); - return emptyFunctionThatReturnsNull; - } - } - - function validate(props, propName, componentName, location, propFullName) { - for (var i = 0; i < arrayOfTypeCheckers.length; i++) { - var checker = arrayOfTypeCheckers[i]; - if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) { - return null; - } - } - - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.')); - } - return createChainableTypeChecker(validate); - } - - function createNodeChecker() { - function validate(props, propName, componentName, location, propFullName) { - if (!isNode(props[propName])) { - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.')); - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createShapeTypeChecker(shapeTypes) { - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - var propType = getPropType(propValue); - if (propType !== 'object') { - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); - } - for (var key in shapeTypes) { - var checker = shapeTypes[key]; - if (!checker) { - continue; - } - var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); - if (error) { - return error; - } - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createStrictShapeTypeChecker(shapeTypes) { - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - var propType = getPropType(propValue); - if (propType !== 'object') { - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); - } - // We need to check all keys in case some are required but missing from - // props. - var allKeys = assign({}, props[propName], shapeTypes); - for (var key in allKeys) { - var checker = shapeTypes[key]; - if (!checker) { - return new PropTypeError( - 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' + - '\nBad object: ' + JSON.stringify(props[propName], null, ' ') + - '\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ') - ); - } - var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); - if (error) { - return error; - } - } - return null; - } - - return createChainableTypeChecker(validate); - } - - function isNode(propValue) { - switch (typeof propValue) { - case 'number': - case 'string': - case 'undefined': - return true; - case 'boolean': - return !propValue; - case 'object': - if (Array.isArray(propValue)) { - return propValue.every(isNode); - } - if (propValue === null || isValidElement(propValue)) { - return true; - } - - var iteratorFn = getIteratorFn(propValue); - if (iteratorFn) { - var iterator = iteratorFn.call(propValue); - var step; - if (iteratorFn !== propValue.entries) { - while (!(step = iterator.next()).done) { - if (!isNode(step.value)) { - return false; - } - } - } else { - // Iterator will provide entry [k,v] tuples rather than values. - while (!(step = iterator.next()).done) { - var entry = step.value; - if (entry) { - if (!isNode(entry[1])) { - return false; - } - } - } - } - } else { - return false; - } - - return true; - default: - return false; - } - } - - function isSymbol(propType, propValue) { - // Native Symbol. - if (propType === 'symbol') { - return true; - } - - // falsy value can't be a Symbol - if (!propValue) { - return false; - } - - // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol' - if (propValue['@@toStringTag'] === 'Symbol') { - return true; - } - - // Fallback for non-spec compliant Symbols which are polyfilled. - if (typeof Symbol === 'function' && propValue instanceof Symbol) { - return true; - } - - return false; - } - - // Equivalent of `typeof` but with special handling for array and regexp. - function getPropType(propValue) { - var propType = typeof propValue; - if (Array.isArray(propValue)) { - return 'array'; - } - if (propValue instanceof RegExp) { - // Old webkits (at least until Android 4.0) return 'function' rather than - // 'object' for typeof a RegExp. We'll normalize this here so that /bla/ - // passes PropTypes.object. - return 'object'; - } - if (isSymbol(propType, propValue)) { - return 'symbol'; - } - return propType; - } - - // This handles more types than `getPropType`. Only used for error messages. - // See `createPrimitiveTypeChecker`. - function getPreciseType(propValue) { - if (typeof propValue === 'undefined' || propValue === null) { - return '' + propValue; - } - var propType = getPropType(propValue); - if (propType === 'object') { - if (propValue instanceof Date) { - return 'date'; - } else if (propValue instanceof RegExp) { - return 'regexp'; - } - } - return propType; - } - - // Returns a string that is postfixed to a warning about an invalid type. - // For example, "undefined" or "of type array" - function getPostfixForTypeWarning(value) { - var type = getPreciseType(value); - switch (type) { - case 'array': - case 'object': - return 'an ' + type; - case 'boolean': - case 'date': - case 'regexp': - return 'a ' + type; - default: - return type; - } - } - - // Returns class name of the object, if any. - function getClassName(propValue) { - if (!propValue.constructor || !propValue.constructor.name) { - return ANONYMOUS; - } - return propValue.constructor.name; - } - - ReactPropTypes.checkPropTypes = checkPropTypes; - ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache; - ReactPropTypes.PropTypes = ReactPropTypes; - - return ReactPropTypes; -}; diff --git a/node_modules/prop-types/index.js b/node_modules/prop-types/index.js deleted file mode 100644 index e9ef51d..0000000 --- a/node_modules/prop-types/index.js +++ /dev/null @@ -1,19 +0,0 @@ -/** - * Copyright (c) 2013-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -if (process.env.NODE_ENV !== 'production') { - var ReactIs = require('react-is'); - - // By explicitly using `prop-types` you are opting into new development behavior. - // http://fb.me/prop-types-in-prod - var throwOnDirectAccess = true; - module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess); -} else { - // By explicitly using `prop-types` you are opting into new production behavior. - // http://fb.me/prop-types-in-prod - module.exports = require('./factoryWithThrowingShims')(); -} diff --git a/node_modules/prop-types/lib/ReactPropTypesSecret.js b/node_modules/prop-types/lib/ReactPropTypesSecret.js deleted file mode 100644 index f54525e..0000000 --- a/node_modules/prop-types/lib/ReactPropTypesSecret.js +++ /dev/null @@ -1,12 +0,0 @@ -/** - * Copyright (c) 2013-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -'use strict'; - -var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; - -module.exports = ReactPropTypesSecret; diff --git a/node_modules/prop-types/package.json b/node_modules/prop-types/package.json deleted file mode 100644 index 6e2fd98..0000000 --- a/node_modules/prop-types/package.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "_from": "prop-types@^15.6.2", - "_id": "prop-types@15.7.2", - "_inBundle": false, - "_integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", - "_location": "/prop-types", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "prop-types@^15.6.2", - "name": "prop-types", - "escapedName": "prop-types", - "rawSpec": "^15.6.2", - "saveSpec": null, - "fetchSpec": "^15.6.2" - }, - "_requiredBy": [ - "/react-router", - "/react-router-dom" - ], - "_resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", - "_shasum": "52c41e75b8c87e72b9d9360e0206b99dcbffa6c5", - "_spec": "prop-types@^15.6.2", - "_where": "G:\\_comp_\\odsc\\orig\\AllNotes\\node_modules\\react-router-dom", - "browserify": { - "transform": [ - "loose-envify" - ] - }, - "bugs": { - "url": "https://github.com/facebook/prop-types/issues" - }, - "bundleDependencies": false, - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.8.1" - }, - "deprecated": false, - "description": "Runtime type checking for React props and similar objects.", - "devDependencies": { - "babel-jest": "^19.0.0", - "babel-preset-react": "^6.24.1", - "browserify": "^16.2.3", - "bundle-collapser": "^1.2.1", - "eslint": "^5.13.0", - "jest": "^19.0.2", - "react": "^15.5.1", - "uglifyify": "^3.0.4", - "uglifyjs": "^2.4.10" - }, - "files": [ - "LICENSE", - "README.md", - "checkPropTypes.js", - "factory.js", - "factoryWithThrowingShims.js", - "factoryWithTypeCheckers.js", - "index.js", - "prop-types.js", - "prop-types.min.js", - "lib" - ], - "homepage": "https://facebook.github.io/react/", - "keywords": [ - "react" - ], - "license": "MIT", - "main": "index.js", - "name": "prop-types", - "repository": { - "type": "git", - "url": "git+https://github.com/facebook/prop-types.git" - }, - "scripts": { - "build": "yarn umd && yarn umd-min", - "lint": "eslint .", - "prepublish": "yarn build", - "pretest": "npm run lint", - "test": "npm run tests-only", - "tests-only": "jest", - "umd": "NODE_ENV=development browserify index.js -t loose-envify --standalone PropTypes -o prop-types.js", - "umd-min": "NODE_ENV=production browserify index.js -t loose-envify -t uglifyify --standalone PropTypes -p bundle-collapser/plugin -o | uglifyjs --compress unused,dead_code -o prop-types.min.js" - }, - "version": "15.7.2" -} diff --git a/node_modules/prop-types/prop-types.js b/node_modules/prop-types/prop-types.js deleted file mode 100644 index 867d699..0000000 --- a/node_modules/prop-types/prop-types.js +++ /dev/null @@ -1,1337 +0,0 @@ -(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.PropTypes = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o 1) { - printWarning( - 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' + - 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).' - ); - } else { - printWarning('Invalid argument supplied to oneOf, expected an array.'); - } - } - return emptyFunctionThatReturnsNull; - } - - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - for (var i = 0; i < expectedValues.length; i++) { - if (is(propValue, expectedValues[i])) { - return null; - } - } - - var valuesString = JSON.stringify(expectedValues, function replacer(key, value) { - var type = getPreciseType(value); - if (type === 'symbol') { - return String(value); - } - return value; - }); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.')); - } - return createChainableTypeChecker(validate); - } - - function createObjectOfTypeChecker(typeChecker) { - function validate(props, propName, componentName, location, propFullName) { - if (typeof typeChecker !== 'function') { - return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.'); - } - var propValue = props[propName]; - var propType = getPropType(propValue); - if (propType !== 'object') { - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.')); - } - for (var key in propValue) { - if (has(propValue, key)) { - var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); - if (error instanceof Error) { - return error; - } - } - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createUnionTypeChecker(arrayOfTypeCheckers) { - if (!Array.isArray(arrayOfTypeCheckers)) { - "development" !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0; - return emptyFunctionThatReturnsNull; - } - - for (var i = 0; i < arrayOfTypeCheckers.length; i++) { - var checker = arrayOfTypeCheckers[i]; - if (typeof checker !== 'function') { - printWarning( - 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' + - 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.' - ); - return emptyFunctionThatReturnsNull; - } - } - - function validate(props, propName, componentName, location, propFullName) { - for (var i = 0; i < arrayOfTypeCheckers.length; i++) { - var checker = arrayOfTypeCheckers[i]; - if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) { - return null; - } - } - - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.')); - } - return createChainableTypeChecker(validate); - } - - function createNodeChecker() { - function validate(props, propName, componentName, location, propFullName) { - if (!isNode(props[propName])) { - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.')); - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createShapeTypeChecker(shapeTypes) { - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - var propType = getPropType(propValue); - if (propType !== 'object') { - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); - } - for (var key in shapeTypes) { - var checker = shapeTypes[key]; - if (!checker) { - continue; - } - var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); - if (error) { - return error; - } - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createStrictShapeTypeChecker(shapeTypes) { - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - var propType = getPropType(propValue); - if (propType !== 'object') { - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); - } - // We need to check all keys in case some are required but missing from - // props. - var allKeys = assign({}, props[propName], shapeTypes); - for (var key in allKeys) { - var checker = shapeTypes[key]; - if (!checker) { - return new PropTypeError( - 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' + - '\nBad object: ' + JSON.stringify(props[propName], null, ' ') + - '\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ') - ); - } - var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); - if (error) { - return error; - } - } - return null; - } - - return createChainableTypeChecker(validate); - } - - function isNode(propValue) { - switch (typeof propValue) { - case 'number': - case 'string': - case 'undefined': - return true; - case 'boolean': - return !propValue; - case 'object': - if (Array.isArray(propValue)) { - return propValue.every(isNode); - } - if (propValue === null || isValidElement(propValue)) { - return true; - } - - var iteratorFn = getIteratorFn(propValue); - if (iteratorFn) { - var iterator = iteratorFn.call(propValue); - var step; - if (iteratorFn !== propValue.entries) { - while (!(step = iterator.next()).done) { - if (!isNode(step.value)) { - return false; - } - } - } else { - // Iterator will provide entry [k,v] tuples rather than values. - while (!(step = iterator.next()).done) { - var entry = step.value; - if (entry) { - if (!isNode(entry[1])) { - return false; - } - } - } - } - } else { - return false; - } - - return true; - default: - return false; - } - } - - function isSymbol(propType, propValue) { - // Native Symbol. - if (propType === 'symbol') { - return true; - } - - // falsy value can't be a Symbol - if (!propValue) { - return false; - } - - // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol' - if (propValue['@@toStringTag'] === 'Symbol') { - return true; - } - - // Fallback for non-spec compliant Symbols which are polyfilled. - if (typeof Symbol === 'function' && propValue instanceof Symbol) { - return true; - } - - return false; - } - - // Equivalent of `typeof` but with special handling for array and regexp. - function getPropType(propValue) { - var propType = typeof propValue; - if (Array.isArray(propValue)) { - return 'array'; - } - if (propValue instanceof RegExp) { - // Old webkits (at least until Android 4.0) return 'function' rather than - // 'object' for typeof a RegExp. We'll normalize this here so that /bla/ - // passes PropTypes.object. - return 'object'; - } - if (isSymbol(propType, propValue)) { - return 'symbol'; - } - return propType; - } - - // This handles more types than `getPropType`. Only used for error messages. - // See `createPrimitiveTypeChecker`. - function getPreciseType(propValue) { - if (typeof propValue === 'undefined' || propValue === null) { - return '' + propValue; - } - var propType = getPropType(propValue); - if (propType === 'object') { - if (propValue instanceof Date) { - return 'date'; - } else if (propValue instanceof RegExp) { - return 'regexp'; - } - } - return propType; - } - - // Returns a string that is postfixed to a warning about an invalid type. - // For example, "undefined" or "of type array" - function getPostfixForTypeWarning(value) { - var type = getPreciseType(value); - switch (type) { - case 'array': - case 'object': - return 'an ' + type; - case 'boolean': - case 'date': - case 'regexp': - return 'a ' + type; - default: - return type; - } - } - - // Returns class name of the object, if any. - function getClassName(propValue) { - if (!propValue.constructor || !propValue.constructor.name) { - return ANONYMOUS; - } - return propValue.constructor.name; - } - - ReactPropTypes.checkPropTypes = checkPropTypes; - ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache; - ReactPropTypes.PropTypes = ReactPropTypes; - - return ReactPropTypes; -}; - -},{"./checkPropTypes":1,"./lib/ReactPropTypesSecret":5,"object-assign":6,"react-is":10}],4:[function(require,module,exports){ -/** - * Copyright (c) 2013-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -if ("development" !== 'production') { - var ReactIs = require('react-is'); - - // By explicitly using `prop-types` you are opting into new development behavior. - // http://fb.me/prop-types-in-prod - var throwOnDirectAccess = true; - module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess); -} else { - // By explicitly using `prop-types` you are opting into new production behavior. - // http://fb.me/prop-types-in-prod - module.exports = require('./factoryWithThrowingShims')(); -} - -},{"./factoryWithThrowingShims":2,"./factoryWithTypeCheckers":3,"react-is":10}],5:[function(require,module,exports){ -/** - * Copyright (c) 2013-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -'use strict'; - -var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; - -module.exports = ReactPropTypesSecret; - -},{}],6:[function(require,module,exports){ -/* -object-assign -(c) Sindre Sorhus -@license MIT -*/ - -'use strict'; -/* eslint-disable no-unused-vars */ -var getOwnPropertySymbols = Object.getOwnPropertySymbols; -var hasOwnProperty = Object.prototype.hasOwnProperty; -var propIsEnumerable = Object.prototype.propertyIsEnumerable; - -function toObject(val) { - if (val === null || val === undefined) { - throw new TypeError('Object.assign cannot be called with null or undefined'); - } - - return Object(val); -} - -function shouldUseNative() { - try { - if (!Object.assign) { - return false; - } - - // Detect buggy property enumeration order in older V8 versions. - - // https://bugs.chromium.org/p/v8/issues/detail?id=4118 - var test1 = new String('abc'); // eslint-disable-line no-new-wrappers - test1[5] = 'de'; - if (Object.getOwnPropertyNames(test1)[0] === '5') { - return false; - } - - // https://bugs.chromium.org/p/v8/issues/detail?id=3056 - var test2 = {}; - for (var i = 0; i < 10; i++) { - test2['_' + String.fromCharCode(i)] = i; - } - var order2 = Object.getOwnPropertyNames(test2).map(function (n) { - return test2[n]; - }); - if (order2.join('') !== '0123456789') { - return false; - } - - // https://bugs.chromium.org/p/v8/issues/detail?id=3056 - var test3 = {}; - 'abcdefghijklmnopqrst'.split('').forEach(function (letter) { - test3[letter] = letter; - }); - if (Object.keys(Object.assign({}, test3)).join('') !== - 'abcdefghijklmnopqrst') { - return false; - } - - return true; - } catch (err) { - // We don't expect any of the above to throw, but better to be safe. - return false; - } -} - -module.exports = shouldUseNative() ? Object.assign : function (target, source) { - var from; - var to = toObject(target); - var symbols; - - for (var s = 1; s < arguments.length; s++) { - from = Object(arguments[s]); - - for (var key in from) { - if (hasOwnProperty.call(from, key)) { - to[key] = from[key]; - } - } - - if (getOwnPropertySymbols) { - symbols = getOwnPropertySymbols(from); - for (var i = 0; i < symbols.length; i++) { - if (propIsEnumerable.call(from, symbols[i])) { - to[symbols[i]] = from[symbols[i]]; - } - } - } - } - - return to; -}; - -},{}],7:[function(require,module,exports){ -// shim for using process in browser -var process = module.exports = {}; - -// cached from whatever global is present so that test runners that stub it -// don't break things. But we need to wrap it in a try catch in case it is -// wrapped in strict mode code which doesn't define any globals. It's inside a -// function because try/catches deoptimize in certain engines. - -var cachedSetTimeout; -var cachedClearTimeout; - -function defaultSetTimout() { - throw new Error('setTimeout has not been defined'); -} -function defaultClearTimeout () { - throw new Error('clearTimeout has not been defined'); -} -(function () { - try { - if (typeof setTimeout === 'function') { - cachedSetTimeout = setTimeout; - } else { - cachedSetTimeout = defaultSetTimout; - } - } catch (e) { - cachedSetTimeout = defaultSetTimout; - } - try { - if (typeof clearTimeout === 'function') { - cachedClearTimeout = clearTimeout; - } else { - cachedClearTimeout = defaultClearTimeout; - } - } catch (e) { - cachedClearTimeout = defaultClearTimeout; - } -} ()) -function runTimeout(fun) { - if (cachedSetTimeout === setTimeout) { - //normal enviroments in sane situations - return setTimeout(fun, 0); - } - // if setTimeout wasn't available but was latter defined - if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { - cachedSetTimeout = setTimeout; - return setTimeout(fun, 0); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedSetTimeout(fun, 0); - } catch(e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedSetTimeout.call(null, fun, 0); - } catch(e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error - return cachedSetTimeout.call(this, fun, 0); - } - } - - -} -function runClearTimeout(marker) { - if (cachedClearTimeout === clearTimeout) { - //normal enviroments in sane situations - return clearTimeout(marker); - } - // if clearTimeout wasn't available but was latter defined - if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { - cachedClearTimeout = clearTimeout; - return clearTimeout(marker); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedClearTimeout(marker); - } catch (e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedClearTimeout.call(null, marker); - } catch (e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. - // Some versions of I.E. have different rules for clearTimeout vs setTimeout - return cachedClearTimeout.call(this, marker); - } - } - - - -} -var queue = []; -var draining = false; -var currentQueue; -var queueIndex = -1; - -function cleanUpNextTick() { - if (!draining || !currentQueue) { - return; - } - draining = false; - if (currentQueue.length) { - queue = currentQueue.concat(queue); - } else { - queueIndex = -1; - } - if (queue.length) { - drainQueue(); - } -} - -function drainQueue() { - if (draining) { - return; - } - var timeout = runTimeout(cleanUpNextTick); - draining = true; - - var len = queue.length; - while(len) { - currentQueue = queue; - queue = []; - while (++queueIndex < len) { - if (currentQueue) { - currentQueue[queueIndex].run(); - } - } - queueIndex = -1; - len = queue.length; - } - currentQueue = null; - draining = false; - runClearTimeout(timeout); -} - -process.nextTick = function (fun) { - var args = new Array(arguments.length - 1); - if (arguments.length > 1) { - for (var i = 1; i < arguments.length; i++) { - args[i - 1] = arguments[i]; - } - } - queue.push(new Item(fun, args)); - if (queue.length === 1 && !draining) { - runTimeout(drainQueue); - } -}; - -// v8 likes predictible objects -function Item(fun, array) { - this.fun = fun; - this.array = array; -} -Item.prototype.run = function () { - this.fun.apply(null, this.array); -}; -process.title = 'browser'; -process.browser = true; -process.env = {}; -process.argv = []; -process.version = ''; // empty string to avoid regexp issues -process.versions = {}; - -function noop() {} - -process.on = noop; -process.addListener = noop; -process.once = noop; -process.off = noop; -process.removeListener = noop; -process.removeAllListeners = noop; -process.emit = noop; -process.prependListener = noop; -process.prependOnceListener = noop; - -process.listeners = function (name) { return [] } - -process.binding = function (name) { - throw new Error('process.binding is not supported'); -}; - -process.cwd = function () { return '/' }; -process.chdir = function (dir) { - throw new Error('process.chdir is not supported'); -}; -process.umask = function() { return 0; }; - -},{}],8:[function(require,module,exports){ -(function (process){ -/** @license React v16.8.1 - * react-is.development.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -'use strict'; - - - -if (process.env.NODE_ENV !== "production") { - (function() { -'use strict'; - -Object.defineProperty(exports, '__esModule', { value: true }); - -// The Symbol used to tag the ReactElement-like types. If there is no native Symbol -// nor polyfill, then a plain number is used for performance. -var hasSymbol = typeof Symbol === 'function' && Symbol.for; - -var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7; -var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca; -var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb; -var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc; -var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2; -var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd; -var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; -var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf; -var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf; -var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0; -var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1; -var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3; -var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4; - -function isValidElementType(type) { - return typeof type === 'string' || typeof type === 'function' || - // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill. - type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE); -} - -/** - * Forked from fbjs/warning: - * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js - * - * Only change is we use console.warn instead of console.error, - * and do nothing when 'console' is not supported. - * This really simplifies the code. - * --- - * Similar to invariant but only logs a warning if the condition is not met. - * This can be used to log issues in development environments in critical - * paths. Removing the logging code for production environments will keep the - * same logic and follow the same code paths. - */ - -var lowPriorityWarning = function () {}; - -{ - var printWarning = function (format) { - for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - - var argIndex = 0; - var message = 'Warning: ' + format.replace(/%s/g, function () { - return args[argIndex++]; - }); - if (typeof console !== 'undefined') { - console.warn(message); - } - try { - // --- Welcome to debugging React --- - // This error was thrown as a convenience so that you can use this stack - // to find the callsite that caused this warning to fire. - throw new Error(message); - } catch (x) {} - }; - - lowPriorityWarning = function (condition, format) { - if (format === undefined) { - throw new Error('`lowPriorityWarning(condition, format, ...args)` requires a warning ' + 'message argument'); - } - if (!condition) { - for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) { - args[_key2 - 2] = arguments[_key2]; - } - - printWarning.apply(undefined, [format].concat(args)); - } - }; -} - -var lowPriorityWarning$1 = lowPriorityWarning; - -function typeOf(object) { - if (typeof object === 'object' && object !== null) { - var $$typeof = object.$$typeof; - switch ($$typeof) { - case REACT_ELEMENT_TYPE: - var type = object.type; - - switch (type) { - case REACT_ASYNC_MODE_TYPE: - case REACT_CONCURRENT_MODE_TYPE: - case REACT_FRAGMENT_TYPE: - case REACT_PROFILER_TYPE: - case REACT_STRICT_MODE_TYPE: - case REACT_SUSPENSE_TYPE: - return type; - default: - var $$typeofType = type && type.$$typeof; - - switch ($$typeofType) { - case REACT_CONTEXT_TYPE: - case REACT_FORWARD_REF_TYPE: - case REACT_PROVIDER_TYPE: - return $$typeofType; - default: - return $$typeof; - } - } - case REACT_LAZY_TYPE: - case REACT_MEMO_TYPE: - case REACT_PORTAL_TYPE: - return $$typeof; - } - } - - return undefined; -} - -// AsyncMode is deprecated along with isAsyncMode -var AsyncMode = REACT_ASYNC_MODE_TYPE; -var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE; -var ContextConsumer = REACT_CONTEXT_TYPE; -var ContextProvider = REACT_PROVIDER_TYPE; -var Element = REACT_ELEMENT_TYPE; -var ForwardRef = REACT_FORWARD_REF_TYPE; -var Fragment = REACT_FRAGMENT_TYPE; -var Lazy = REACT_LAZY_TYPE; -var Memo = REACT_MEMO_TYPE; -var Portal = REACT_PORTAL_TYPE; -var Profiler = REACT_PROFILER_TYPE; -var StrictMode = REACT_STRICT_MODE_TYPE; -var Suspense = REACT_SUSPENSE_TYPE; - -var hasWarnedAboutDeprecatedIsAsyncMode = false; - -// AsyncMode should be deprecated -function isAsyncMode(object) { - { - if (!hasWarnedAboutDeprecatedIsAsyncMode) { - hasWarnedAboutDeprecatedIsAsyncMode = true; - lowPriorityWarning$1(false, 'The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.'); - } - } - return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE; -} -function isConcurrentMode(object) { - return typeOf(object) === REACT_CONCURRENT_MODE_TYPE; -} -function isContextConsumer(object) { - return typeOf(object) === REACT_CONTEXT_TYPE; -} -function isContextProvider(object) { - return typeOf(object) === REACT_PROVIDER_TYPE; -} -function isElement(object) { - return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE; -} -function isForwardRef(object) { - return typeOf(object) === REACT_FORWARD_REF_TYPE; -} -function isFragment(object) { - return typeOf(object) === REACT_FRAGMENT_TYPE; -} -function isLazy(object) { - return typeOf(object) === REACT_LAZY_TYPE; -} -function isMemo(object) { - return typeOf(object) === REACT_MEMO_TYPE; -} -function isPortal(object) { - return typeOf(object) === REACT_PORTAL_TYPE; -} -function isProfiler(object) { - return typeOf(object) === REACT_PROFILER_TYPE; -} -function isStrictMode(object) { - return typeOf(object) === REACT_STRICT_MODE_TYPE; -} -function isSuspense(object) { - return typeOf(object) === REACT_SUSPENSE_TYPE; -} - -exports.typeOf = typeOf; -exports.AsyncMode = AsyncMode; -exports.ConcurrentMode = ConcurrentMode; -exports.ContextConsumer = ContextConsumer; -exports.ContextProvider = ContextProvider; -exports.Element = Element; -exports.ForwardRef = ForwardRef; -exports.Fragment = Fragment; -exports.Lazy = Lazy; -exports.Memo = Memo; -exports.Portal = Portal; -exports.Profiler = Profiler; -exports.StrictMode = StrictMode; -exports.Suspense = Suspense; -exports.isValidElementType = isValidElementType; -exports.isAsyncMode = isAsyncMode; -exports.isConcurrentMode = isConcurrentMode; -exports.isContextConsumer = isContextConsumer; -exports.isContextProvider = isContextProvider; -exports.isElement = isElement; -exports.isForwardRef = isForwardRef; -exports.isFragment = isFragment; -exports.isLazy = isLazy; -exports.isMemo = isMemo; -exports.isPortal = isPortal; -exports.isProfiler = isProfiler; -exports.isStrictMode = isStrictMode; -exports.isSuspense = isSuspense; - })(); -} - -}).call(this,require('_process')) -},{"_process":7}],9:[function(require,module,exports){ -/** @license React v16.8.1 - * react-is.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -'use strict';Object.defineProperty(exports,"__esModule",{value:!0}); -var b="function"===typeof Symbol&&Symbol.for,c=b?Symbol.for("react.element"):60103,d=b?Symbol.for("react.portal"):60106,e=b?Symbol.for("react.fragment"):60107,f=b?Symbol.for("react.strict_mode"):60108,g=b?Symbol.for("react.profiler"):60114,h=b?Symbol.for("react.provider"):60109,k=b?Symbol.for("react.context"):60110,l=b?Symbol.for("react.async_mode"):60111,m=b?Symbol.for("react.concurrent_mode"):60111,n=b?Symbol.for("react.forward_ref"):60112,p=b?Symbol.for("react.suspense"):60113,q=b?Symbol.for("react.memo"): -60115,r=b?Symbol.for("react.lazy"):60116;function t(a){if("object"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case h:return a;default:return u}}case r:case q:case d:return u}}}function v(a){return t(a)===m}exports.typeOf=t;exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n; -exports.Fragment=e;exports.Lazy=r;exports.Memo=q;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isValidElementType=function(a){return"string"===typeof a||"function"===typeof a||a===e||a===m||a===g||a===f||a===p||"object"===typeof a&&null!==a&&(a.$$typeof===r||a.$$typeof===q||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n)};exports.isAsyncMode=function(a){return v(a)||t(a)===l};exports.isConcurrentMode=v;exports.isContextConsumer=function(a){return t(a)===k}; -exports.isContextProvider=function(a){return t(a)===h};exports.isElement=function(a){return"object"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return t(a)===n};exports.isFragment=function(a){return t(a)===e};exports.isLazy=function(a){return t(a)===r};exports.isMemo=function(a){return t(a)===q};exports.isPortal=function(a){return t(a)===d};exports.isProfiler=function(a){return t(a)===g};exports.isStrictMode=function(a){return t(a)===f}; -exports.isSuspense=function(a){return t(a)===p}; - -},{}],10:[function(require,module,exports){ -(function (process){ -'use strict'; - -if (process.env.NODE_ENV === 'production') { - module.exports = require('./cjs/react-is.production.min.js'); -} else { - module.exports = require('./cjs/react-is.development.js'); -} - -}).call(this,require('_process')) -},{"./cjs/react-is.development.js":8,"./cjs/react-is.production.min.js":9,"_process":7}]},{},[4])(4) -}); \ No newline at end of file diff --git a/node_modules/prop-types/prop-types.min.js b/node_modules/prop-types/prop-types.min.js deleted file mode 100644 index c902433..0000000 --- a/node_modules/prop-types/prop-types.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(f){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=f();else if("function"==typeof define&&define.amd)define([],f);else{var g;g="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,g.PropTypes=f()}}(function(){return function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a="function"==typeof require&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n||e)},l,l.exports,e,t,n,r)}return n[o].exports}for(var i="function"==typeof require&&require,o=0;o React.createElement("div"); - -const ForwardRefComponent = React.forwardRef((props, ref) => - React.createElement(Component, { forwardedRef: ref, ...props }) -); - -const Context = React.createContext(false); - -ReactIs.isValidElementType("div"); // true -ReactIs.isValidElementType(ClassComponent); // true -ReactIs.isValidElementType(FunctionComponent); // true -ReactIs.isValidElementType(ForwardRefComponent); // true -ReactIs.isValidElementType(Context.Provider); // true -ReactIs.isValidElementType(Context.Consumer); // true -ReactIs.isValidElementType(React.createFactory("div")); // true -``` - -### Determining an Element's Type - -#### Context - -```js -import React from "react"; -import * as ReactIs from 'react-is'; - -const ThemeContext = React.createContext("blue"); - -ReactIs.isContextConsumer(); // true -ReactIs.isContextProvider(); // true -ReactIs.typeOf() === ReactIs.ContextProvider; // true -ReactIs.typeOf() === ReactIs.ContextConsumer; // true -``` - -#### Element - -```js -import React from "react"; -import * as ReactIs from 'react-is'; - -ReactIs.isElement(
); // true -ReactIs.typeOf(
) === ReactIs.Element; // true -``` - -#### Fragment - -```js -import React from "react"; -import * as ReactIs from 'react-is'; - -ReactIs.isFragment(<>); // true -ReactIs.typeOf(<>) === ReactIs.Fragment; // true -``` - -#### Portal - -```js -import React from "react"; -import ReactDOM from "react-dom"; -import * as ReactIs from 'react-is'; - -const div = document.createElement("div"); -const portal = ReactDOM.createPortal(
, div); - -ReactIs.isPortal(portal); // true -ReactIs.typeOf(portal) === ReactIs.Portal; // true -``` - -#### StrictMode - -```js -import React from "react"; -import * as ReactIs from 'react-is'; - -ReactIs.isStrictMode(); // true -ReactIs.typeOf() === ReactIs.StrictMode; // true -``` diff --git a/node_modules/react-is/build-info.json b/node_modules/react-is/build-info.json deleted file mode 100644 index 4094da6..0000000 --- a/node_modules/react-is/build-info.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "branch": "pull/18344", - "buildNumber": "106499", - "checksum": "7fe5a2e", - "commit": "da834083c", - "environment": "ci", - "reactVersion": "16.12.0-da834083c" -} diff --git a/node_modules/react-is/cjs/react-is.development.js b/node_modules/react-is/cjs/react-is.development.js deleted file mode 100644 index 8a80b76..0000000 --- a/node_modules/react-is/cjs/react-is.development.js +++ /dev/null @@ -1,181 +0,0 @@ -/** @license React v16.13.1 - * react-is.development.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -'use strict'; - - - -if (process.env.NODE_ENV !== "production") { - (function() { -'use strict'; - -// The Symbol used to tag the ReactElement-like types. If there is no native Symbol -// nor polyfill, then a plain number is used for performance. -var hasSymbol = typeof Symbol === 'function' && Symbol.for; -var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7; -var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca; -var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb; -var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc; -var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2; -var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd; -var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary -// (unstable) APIs that have been removed. Can we remove the symbols? - -var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf; -var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf; -var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0; -var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1; -var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8; -var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3; -var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4; -var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9; -var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5; -var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6; -var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7; - -function isValidElementType(type) { - return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill. - type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE); -} - -function typeOf(object) { - if (typeof object === 'object' && object !== null) { - var $$typeof = object.$$typeof; - - switch ($$typeof) { - case REACT_ELEMENT_TYPE: - var type = object.type; - - switch (type) { - case REACT_ASYNC_MODE_TYPE: - case REACT_CONCURRENT_MODE_TYPE: - case REACT_FRAGMENT_TYPE: - case REACT_PROFILER_TYPE: - case REACT_STRICT_MODE_TYPE: - case REACT_SUSPENSE_TYPE: - return type; - - default: - var $$typeofType = type && type.$$typeof; - - switch ($$typeofType) { - case REACT_CONTEXT_TYPE: - case REACT_FORWARD_REF_TYPE: - case REACT_LAZY_TYPE: - case REACT_MEMO_TYPE: - case REACT_PROVIDER_TYPE: - return $$typeofType; - - default: - return $$typeof; - } - - } - - case REACT_PORTAL_TYPE: - return $$typeof; - } - } - - return undefined; -} // AsyncMode is deprecated along with isAsyncMode - -var AsyncMode = REACT_ASYNC_MODE_TYPE; -var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE; -var ContextConsumer = REACT_CONTEXT_TYPE; -var ContextProvider = REACT_PROVIDER_TYPE; -var Element = REACT_ELEMENT_TYPE; -var ForwardRef = REACT_FORWARD_REF_TYPE; -var Fragment = REACT_FRAGMENT_TYPE; -var Lazy = REACT_LAZY_TYPE; -var Memo = REACT_MEMO_TYPE; -var Portal = REACT_PORTAL_TYPE; -var Profiler = REACT_PROFILER_TYPE; -var StrictMode = REACT_STRICT_MODE_TYPE; -var Suspense = REACT_SUSPENSE_TYPE; -var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated - -function isAsyncMode(object) { - { - if (!hasWarnedAboutDeprecatedIsAsyncMode) { - hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint - - console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.'); - } - } - - return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE; -} -function isConcurrentMode(object) { - return typeOf(object) === REACT_CONCURRENT_MODE_TYPE; -} -function isContextConsumer(object) { - return typeOf(object) === REACT_CONTEXT_TYPE; -} -function isContextProvider(object) { - return typeOf(object) === REACT_PROVIDER_TYPE; -} -function isElement(object) { - return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE; -} -function isForwardRef(object) { - return typeOf(object) === REACT_FORWARD_REF_TYPE; -} -function isFragment(object) { - return typeOf(object) === REACT_FRAGMENT_TYPE; -} -function isLazy(object) { - return typeOf(object) === REACT_LAZY_TYPE; -} -function isMemo(object) { - return typeOf(object) === REACT_MEMO_TYPE; -} -function isPortal(object) { - return typeOf(object) === REACT_PORTAL_TYPE; -} -function isProfiler(object) { - return typeOf(object) === REACT_PROFILER_TYPE; -} -function isStrictMode(object) { - return typeOf(object) === REACT_STRICT_MODE_TYPE; -} -function isSuspense(object) { - return typeOf(object) === REACT_SUSPENSE_TYPE; -} - -exports.AsyncMode = AsyncMode; -exports.ConcurrentMode = ConcurrentMode; -exports.ContextConsumer = ContextConsumer; -exports.ContextProvider = ContextProvider; -exports.Element = Element; -exports.ForwardRef = ForwardRef; -exports.Fragment = Fragment; -exports.Lazy = Lazy; -exports.Memo = Memo; -exports.Portal = Portal; -exports.Profiler = Profiler; -exports.StrictMode = StrictMode; -exports.Suspense = Suspense; -exports.isAsyncMode = isAsyncMode; -exports.isConcurrentMode = isConcurrentMode; -exports.isContextConsumer = isContextConsumer; -exports.isContextProvider = isContextProvider; -exports.isElement = isElement; -exports.isForwardRef = isForwardRef; -exports.isFragment = isFragment; -exports.isLazy = isLazy; -exports.isMemo = isMemo; -exports.isPortal = isPortal; -exports.isProfiler = isProfiler; -exports.isStrictMode = isStrictMode; -exports.isSuspense = isSuspense; -exports.isValidElementType = isValidElementType; -exports.typeOf = typeOf; - })(); -} diff --git a/node_modules/react-is/cjs/react-is.production.min.js b/node_modules/react-is/cjs/react-is.production.min.js deleted file mode 100644 index 3e83c7a..0000000 --- a/node_modules/react-is/cjs/react-is.production.min.js +++ /dev/null @@ -1,15 +0,0 @@ -/** @license React v16.13.1 - * react-is.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -'use strict';var b="function"===typeof Symbol&&Symbol.for,c=b?Symbol.for("react.element"):60103,d=b?Symbol.for("react.portal"):60106,e=b?Symbol.for("react.fragment"):60107,f=b?Symbol.for("react.strict_mode"):60108,g=b?Symbol.for("react.profiler"):60114,h=b?Symbol.for("react.provider"):60109,k=b?Symbol.for("react.context"):60110,l=b?Symbol.for("react.async_mode"):60111,m=b?Symbol.for("react.concurrent_mode"):60111,n=b?Symbol.for("react.forward_ref"):60112,p=b?Symbol.for("react.suspense"):60113,q=b? -Symbol.for("react.suspense_list"):60120,r=b?Symbol.for("react.memo"):60115,t=b?Symbol.for("react.lazy"):60116,v=b?Symbol.for("react.block"):60121,w=b?Symbol.for("react.fundamental"):60117,x=b?Symbol.for("react.responder"):60118,y=b?Symbol.for("react.scope"):60119; -function z(a){if("object"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d; -exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return"object"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t}; -exports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p}; -exports.isValidElementType=function(a){return"string"===typeof a||"function"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||"object"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z; diff --git a/node_modules/react-is/index.js b/node_modules/react-is/index.js deleted file mode 100644 index 3ae098d..0000000 --- a/node_modules/react-is/index.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -if (process.env.NODE_ENV === 'production') { - module.exports = require('./cjs/react-is.production.min.js'); -} else { - module.exports = require('./cjs/react-is.development.js'); -} diff --git a/node_modules/react-is/package.json b/node_modules/react-is/package.json deleted file mode 100644 index f4086d9..0000000 --- a/node_modules/react-is/package.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "_from": "react-is@^16.8.1", - "_id": "react-is@16.13.1", - "_inBundle": false, - "_integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "_location": "/react-is", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "react-is@^16.8.1", - "name": "react-is", - "escapedName": "react-is", - "rawSpec": "^16.8.1", - "saveSpec": null, - "fetchSpec": "^16.8.1" - }, - "_requiredBy": [ - "/hoist-non-react-statics", - "/prop-types", - "/react-router" - ], - "_resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "_shasum": "789729a4dc36de2999dc156dd6c1d9c18cea56a4", - "_spec": "react-is@^16.8.1", - "_where": "G:\\_comp_\\odsc\\orig\\AllNotes\\node_modules\\prop-types", - "bugs": { - "url": "https://github.com/facebook/react/issues" - }, - "bundleDependencies": false, - "deprecated": false, - "description": "Brand checking of React Elements.", - "files": [ - "LICENSE", - "README.md", - "build-info.json", - "index.js", - "cjs/", - "umd/" - ], - "homepage": "https://reactjs.org/", - "keywords": [ - "react" - ], - "license": "MIT", - "main": "index.js", - "name": "react-is", - "repository": { - "type": "git", - "url": "git+https://github.com/facebook/react.git", - "directory": "packages/react-is" - }, - "version": "16.13.1" -} diff --git a/node_modules/react-is/umd/react-is.development.js b/node_modules/react-is/umd/react-is.development.js deleted file mode 100644 index a6bc018..0000000 --- a/node_modules/react-is/umd/react-is.development.js +++ /dev/null @@ -1,181 +0,0 @@ -/** @license React v16.13.1 - * react-is.development.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -'use strict'; - -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : - typeof define === 'function' && define.amd ? define(['exports'], factory) : - (global = global || self, factory(global.ReactIs = {})); -}(this, (function (exports) { 'use strict'; - - // The Symbol used to tag the ReactElement-like types. If there is no native Symbol - // nor polyfill, then a plain number is used for performance. - var hasSymbol = typeof Symbol === 'function' && Symbol.for; - var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7; - var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca; - var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb; - var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc; - var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2; - var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd; - var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary - // (unstable) APIs that have been removed. Can we remove the symbols? - - var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf; - var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf; - var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0; - var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1; - var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8; - var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3; - var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4; - var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9; - var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5; - var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6; - var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7; - - function isValidElementType(type) { - return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill. - type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE); - } - - function typeOf(object) { - if (typeof object === 'object' && object !== null) { - var $$typeof = object.$$typeof; - - switch ($$typeof) { - case REACT_ELEMENT_TYPE: - var type = object.type; - - switch (type) { - case REACT_ASYNC_MODE_TYPE: - case REACT_CONCURRENT_MODE_TYPE: - case REACT_FRAGMENT_TYPE: - case REACT_PROFILER_TYPE: - case REACT_STRICT_MODE_TYPE: - case REACT_SUSPENSE_TYPE: - return type; - - default: - var $$typeofType = type && type.$$typeof; - - switch ($$typeofType) { - case REACT_CONTEXT_TYPE: - case REACT_FORWARD_REF_TYPE: - case REACT_LAZY_TYPE: - case REACT_MEMO_TYPE: - case REACT_PROVIDER_TYPE: - return $$typeofType; - - default: - return $$typeof; - } - - } - - case REACT_PORTAL_TYPE: - return $$typeof; - } - } - - return undefined; - } // AsyncMode is deprecated along with isAsyncMode - - var AsyncMode = REACT_ASYNC_MODE_TYPE; - var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE; - var ContextConsumer = REACT_CONTEXT_TYPE; - var ContextProvider = REACT_PROVIDER_TYPE; - var Element = REACT_ELEMENT_TYPE; - var ForwardRef = REACT_FORWARD_REF_TYPE; - var Fragment = REACT_FRAGMENT_TYPE; - var Lazy = REACT_LAZY_TYPE; - var Memo = REACT_MEMO_TYPE; - var Portal = REACT_PORTAL_TYPE; - var Profiler = REACT_PROFILER_TYPE; - var StrictMode = REACT_STRICT_MODE_TYPE; - var Suspense = REACT_SUSPENSE_TYPE; - var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated - - function isAsyncMode(object) { - { - if (!hasWarnedAboutDeprecatedIsAsyncMode) { - hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint - - console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.'); - } - } - - return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE; - } - function isConcurrentMode(object) { - return typeOf(object) === REACT_CONCURRENT_MODE_TYPE; - } - function isContextConsumer(object) { - return typeOf(object) === REACT_CONTEXT_TYPE; - } - function isContextProvider(object) { - return typeOf(object) === REACT_PROVIDER_TYPE; - } - function isElement(object) { - return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE; - } - function isForwardRef(object) { - return typeOf(object) === REACT_FORWARD_REF_TYPE; - } - function isFragment(object) { - return typeOf(object) === REACT_FRAGMENT_TYPE; - } - function isLazy(object) { - return typeOf(object) === REACT_LAZY_TYPE; - } - function isMemo(object) { - return typeOf(object) === REACT_MEMO_TYPE; - } - function isPortal(object) { - return typeOf(object) === REACT_PORTAL_TYPE; - } - function isProfiler(object) { - return typeOf(object) === REACT_PROFILER_TYPE; - } - function isStrictMode(object) { - return typeOf(object) === REACT_STRICT_MODE_TYPE; - } - function isSuspense(object) { - return typeOf(object) === REACT_SUSPENSE_TYPE; - } - - exports.AsyncMode = AsyncMode; - exports.ConcurrentMode = ConcurrentMode; - exports.ContextConsumer = ContextConsumer; - exports.ContextProvider = ContextProvider; - exports.Element = Element; - exports.ForwardRef = ForwardRef; - exports.Fragment = Fragment; - exports.Lazy = Lazy; - exports.Memo = Memo; - exports.Portal = Portal; - exports.Profiler = Profiler; - exports.StrictMode = StrictMode; - exports.Suspense = Suspense; - exports.isAsyncMode = isAsyncMode; - exports.isConcurrentMode = isConcurrentMode; - exports.isContextConsumer = isContextConsumer; - exports.isContextProvider = isContextProvider; - exports.isElement = isElement; - exports.isForwardRef = isForwardRef; - exports.isFragment = isFragment; - exports.isLazy = isLazy; - exports.isMemo = isMemo; - exports.isPortal = isPortal; - exports.isProfiler = isProfiler; - exports.isStrictMode = isStrictMode; - exports.isSuspense = isSuspense; - exports.isValidElementType = isValidElementType; - exports.typeOf = typeOf; - -}))); diff --git a/node_modules/react-is/umd/react-is.production.min.js b/node_modules/react-is/umd/react-is.production.min.js deleted file mode 100644 index 62fe6b2..0000000 --- a/node_modules/react-is/umd/react-is.production.min.js +++ /dev/null @@ -1,13 +0,0 @@ -/** @license React v16.13.1 - * react-is.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ -'use strict';(function(b,d){"object"===typeof exports&&"undefined"!==typeof module?d(exports):"function"===typeof define&&define.amd?define(["exports"],d):(b=b||self,d(b.ReactIs={}))})(this,function(b){function d(a){if("object"===typeof a&&null!==a){var b=a.$$typeof;switch(b){case r:switch(a=a.type,a){case t:case e:case f:case g:case h:case k:return a;default:switch(a=a&&a.$$typeof,a){case l:case m:case n:case p:case q:return a;default:return b}}case u:return b}}}function v(a){return d(a)===e}var c= -"function"===typeof Symbol&&Symbol.for,r=c?Symbol.for("react.element"):60103,u=c?Symbol.for("react.portal"):60106,f=c?Symbol.for("react.fragment"):60107,h=c?Symbol.for("react.strict_mode"):60108,g=c?Symbol.for("react.profiler"):60114,q=c?Symbol.for("react.provider"):60109,l=c?Symbol.for("react.context"):60110,t=c?Symbol.for("react.async_mode"):60111,e=c?Symbol.for("react.concurrent_mode"):60111,m=c?Symbol.for("react.forward_ref"):60112,k=c?Symbol.for("react.suspense"):60113,w=c?Symbol.for("react.suspense_list"): -60120,p=c?Symbol.for("react.memo"):60115,n=c?Symbol.for("react.lazy"):60116,x=c?Symbol.for("react.block"):60121,y=c?Symbol.for("react.fundamental"):60117,z=c?Symbol.for("react.responder"):60118,A=c?Symbol.for("react.scope"):60119;b.AsyncMode=t;b.ConcurrentMode=e;b.ContextConsumer=l;b.ContextProvider=q;b.Element=r;b.ForwardRef=m;b.Fragment=f;b.Lazy=n;b.Memo=p;b.Portal=u;b.Profiler=g;b.StrictMode=h;b.Suspense=k;b.isAsyncMode=function(a){return v(a)||d(a)===t};b.isConcurrentMode=v;b.isContextConsumer= -function(a){return d(a)===l};b.isContextProvider=function(a){return d(a)===q};b.isElement=function(a){return"object"===typeof a&&null!==a&&a.$$typeof===r};b.isForwardRef=function(a){return d(a)===m};b.isFragment=function(a){return d(a)===f};b.isLazy=function(a){return d(a)===n};b.isMemo=function(a){return d(a)===p};b.isPortal=function(a){return d(a)===u};b.isProfiler=function(a){return d(a)===g};b.isStrictMode=function(a){return d(a)===h};b.isSuspense=function(a){return d(a)===k};b.isValidElementType= -function(a){return"string"===typeof a||"function"===typeof a||a===f||a===e||a===g||a===h||a===k||a===w||"object"===typeof a&&null!==a&&(a.$$typeof===n||a.$$typeof===p||a.$$typeof===q||a.$$typeof===l||a.$$typeof===m||a.$$typeof===y||a.$$typeof===z||a.$$typeof===A||a.$$typeof===x)};b.typeOf=d}); diff --git a/node_modules/react-router-dom/BrowserRouter.js b/node_modules/react-router-dom/BrowserRouter.js deleted file mode 100644 index 841485c..0000000 --- a/node_modules/react-router-dom/BrowserRouter.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -require("./warnAboutDeprecatedCJSRequire")("BrowserRouter"); -module.exports = require("./index.js").BrowserRouter; diff --git a/node_modules/react-router-dom/HashRouter.js b/node_modules/react-router-dom/HashRouter.js deleted file mode 100644 index 41a1907..0000000 --- a/node_modules/react-router-dom/HashRouter.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -require("./warnAboutDeprecatedCJSRequire")("HashRouter"); -module.exports = require("./index.js").HashRouter; diff --git a/node_modules/react-router-dom/LICENSE b/node_modules/react-router-dom/LICENSE deleted file mode 100644 index dc15fe3..0000000 --- a/node_modules/react-router-dom/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) React Training 2016-2018 - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/node_modules/react-router-dom/Link.js b/node_modules/react-router-dom/Link.js deleted file mode 100644 index 67cd635..0000000 --- a/node_modules/react-router-dom/Link.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -require("./warnAboutDeprecatedCJSRequire")("Link"); -module.exports = require("./index.js").Link; diff --git a/node_modules/react-router-dom/MemoryRouter.js b/node_modules/react-router-dom/MemoryRouter.js deleted file mode 100644 index 79b74bb..0000000 --- a/node_modules/react-router-dom/MemoryRouter.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -require("./warnAboutDeprecatedCJSRequire")("MemoryRouter"); -module.exports = require("./index.js").MemoryRouter; diff --git a/node_modules/react-router-dom/NavLink.js b/node_modules/react-router-dom/NavLink.js deleted file mode 100644 index eeae447..0000000 --- a/node_modules/react-router-dom/NavLink.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -require("./warnAboutDeprecatedCJSRequire")("NavLink"); -module.exports = require("./index.js").NavLink; diff --git a/node_modules/react-router-dom/Prompt.js b/node_modules/react-router-dom/Prompt.js deleted file mode 100644 index 20f629b..0000000 --- a/node_modules/react-router-dom/Prompt.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -require("./warnAboutDeprecatedCJSRequire")("Prompt"); -module.exports = require("./index.js").Prompt; diff --git a/node_modules/react-router-dom/README.md b/node_modules/react-router-dom/README.md deleted file mode 100644 index f2abe64..0000000 --- a/node_modules/react-router-dom/README.md +++ /dev/null @@ -1,37 +0,0 @@ -# react-router-dom - -DOM bindings for [React Router](https://reacttraining.com/react-router). - -## Installation - -Using [npm](https://www.npmjs.com/): - - $ npm install --save react-router-dom - -Then with a module bundler like [webpack](https://webpack.github.io/), use as you would anything else: - -```js -// using ES6 modules -import { BrowserRouter, Route, Link } from "react-router-dom"; - -// using CommonJS modules -const BrowserRouter = require("react-router-dom").BrowserRouter; -const Route = require("react-router-dom").Route; -const Link = require("react-router-dom").Link; -``` - -The UMD build is also available on [unpkg](https://unpkg.com): - -```html - -``` - -You can find the library on `window.ReactRouterDOM`. - -## Issues - -If you find a bug, please file an issue on [our issue tracker on GitHub](https://github.com/ReactTraining/react-router/issues). - -## Credits - -React Router is built and maintained by [React Training](https://reacttraining.com). diff --git a/node_modules/react-router-dom/Redirect.js b/node_modules/react-router-dom/Redirect.js deleted file mode 100644 index 6c763ab..0000000 --- a/node_modules/react-router-dom/Redirect.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -require("./warnAboutDeprecatedCJSRequire")("Redirect"); -module.exports = require("./index.js").Redirect; diff --git a/node_modules/react-router-dom/Route.js b/node_modules/react-router-dom/Route.js deleted file mode 100644 index 0d3b1f5..0000000 --- a/node_modules/react-router-dom/Route.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -require("./warnAboutDeprecatedCJSRequire")("Route"); -module.exports = require("./index.js").Route; diff --git a/node_modules/react-router-dom/Router.js b/node_modules/react-router-dom/Router.js deleted file mode 100644 index ca27b72..0000000 --- a/node_modules/react-router-dom/Router.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -require("./warnAboutDeprecatedCJSRequire")("Router"); -module.exports = require("./index.js").Router; diff --git a/node_modules/react-router-dom/StaticRouter.js b/node_modules/react-router-dom/StaticRouter.js deleted file mode 100644 index 6bc3513..0000000 --- a/node_modules/react-router-dom/StaticRouter.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -require("./warnAboutDeprecatedCJSRequire")("StaticRouter"); -module.exports = require("./index.js").StaticRouter; diff --git a/node_modules/react-router-dom/Switch.js b/node_modules/react-router-dom/Switch.js deleted file mode 100644 index a4b38eb..0000000 --- a/node_modules/react-router-dom/Switch.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -require("./warnAboutDeprecatedCJSRequire")("Switch"); -module.exports = require("./index.js").Switch; diff --git a/node_modules/react-router-dom/cjs/react-router-dom.js b/node_modules/react-router-dom/cjs/react-router-dom.js deleted file mode 100644 index d466cd5..0000000 --- a/node_modules/react-router-dom/cjs/react-router-dom.js +++ /dev/null @@ -1,443 +0,0 @@ -'use strict'; - -function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } - -var reactRouter = require('react-router'); -var React = _interopDefault(require('react')); -var history = require('history'); -var PropTypes = _interopDefault(require('prop-types')); -var warning = _interopDefault(require('tiny-warning')); -var invariant = _interopDefault(require('tiny-invariant')); - -function _extends() { - _extends = Object.assign || function (target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i]; - - for (var key in source) { - if (Object.prototype.hasOwnProperty.call(source, key)) { - target[key] = source[key]; - } - } - } - - return target; - }; - - return _extends.apply(this, arguments); -} - -function _inheritsLoose(subClass, superClass) { - subClass.prototype = Object.create(superClass.prototype); - subClass.prototype.constructor = subClass; - subClass.__proto__ = superClass; -} - -function _objectWithoutPropertiesLoose(source, excluded) { - if (source == null) return {}; - var target = {}; - var sourceKeys = Object.keys(source); - var key, i; - - for (i = 0; i < sourceKeys.length; i++) { - key = sourceKeys[i]; - if (excluded.indexOf(key) >= 0) continue; - target[key] = source[key]; - } - - return target; -} - -/** - * The public API for a that uses HTML5 history. - */ - -var BrowserRouter = -/*#__PURE__*/ -function (_React$Component) { - _inheritsLoose(BrowserRouter, _React$Component); - - function BrowserRouter() { - var _this; - - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this; - _this.history = history.createBrowserHistory(_this.props); - return _this; - } - - var _proto = BrowserRouter.prototype; - - _proto.render = function render() { - return React.createElement(reactRouter.Router, { - history: this.history, - children: this.props.children - }); - }; - - return BrowserRouter; -}(React.Component); - -{ - BrowserRouter.propTypes = { - basename: PropTypes.string, - children: PropTypes.node, - forceRefresh: PropTypes.bool, - getUserConfirmation: PropTypes.func, - keyLength: PropTypes.number - }; - - BrowserRouter.prototype.componentDidMount = function () { - warning(!this.props.history, " ignores the history prop. To use a custom history, " + "use `import { Router }` instead of `import { BrowserRouter as Router }`.") ; - }; -} - -/** - * The public API for a that uses window.location.hash. - */ - -var HashRouter = -/*#__PURE__*/ -function (_React$Component) { - _inheritsLoose(HashRouter, _React$Component); - - function HashRouter() { - var _this; - - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this; - _this.history = history.createHashHistory(_this.props); - return _this; - } - - var _proto = HashRouter.prototype; - - _proto.render = function render() { - return React.createElement(reactRouter.Router, { - history: this.history, - children: this.props.children - }); - }; - - return HashRouter; -}(React.Component); - -{ - HashRouter.propTypes = { - basename: PropTypes.string, - children: PropTypes.node, - getUserConfirmation: PropTypes.func, - hashType: PropTypes.oneOf(["hashbang", "noslash", "slash"]) - }; - - HashRouter.prototype.componentDidMount = function () { - warning(!this.props.history, " ignores the history prop. To use a custom history, " + "use `import { Router }` instead of `import { HashRouter as Router }`.") ; - }; -} - -var resolveToLocation = function resolveToLocation(to, currentLocation) { - return typeof to === "function" ? to(currentLocation) : to; -}; -var normalizeToLocation = function normalizeToLocation(to, currentLocation) { - return typeof to === "string" ? history.createLocation(to, null, null, currentLocation) : to; -}; - -var forwardRefShim = function forwardRefShim(C) { - return C; -}; - -var forwardRef = React.forwardRef; - -if (typeof forwardRef === "undefined") { - forwardRef = forwardRefShim; -} - -function isModifiedEvent(event) { - return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey); -} - -var LinkAnchor = forwardRef(function (_ref, forwardedRef) { - var innerRef = _ref.innerRef, - navigate = _ref.navigate, - _onClick = _ref.onClick, - rest = _objectWithoutPropertiesLoose(_ref, ["innerRef", "navigate", "onClick"]); - - var target = rest.target; - - var props = _extends({}, rest, { - onClick: function onClick(event) { - try { - if (_onClick) _onClick(event); - } catch (ex) { - event.preventDefault(); - throw ex; - } - - if (!event.defaultPrevented && // onClick prevented default - event.button === 0 && ( // ignore everything but left clicks - !target || target === "_self") && // let browser handle "target=_blank" etc. - !isModifiedEvent(event) // ignore clicks with modifier keys - ) { - event.preventDefault(); - navigate(); - } - } - }); // React 15 compat - - - if (forwardRefShim !== forwardRef) { - props.ref = forwardedRef || innerRef; - } else { - props.ref = innerRef; - } - /* eslint-disable-next-line jsx-a11y/anchor-has-content */ - - - return React.createElement("a", props); -}); - -{ - LinkAnchor.displayName = "LinkAnchor"; -} -/** - * The public API for rendering a history-aware . - */ - - -var Link = forwardRef(function (_ref2, forwardedRef) { - var _ref2$component = _ref2.component, - component = _ref2$component === void 0 ? LinkAnchor : _ref2$component, - replace = _ref2.replace, - to = _ref2.to, - innerRef = _ref2.innerRef, - rest = _objectWithoutPropertiesLoose(_ref2, ["component", "replace", "to", "innerRef"]); - - return React.createElement(reactRouter.__RouterContext.Consumer, null, function (context) { - !context ? invariant(false, "You should not use outside a ") : void 0; - var history = context.history; - var location = normalizeToLocation(resolveToLocation(to, context.location), context.location); - var href = location ? history.createHref(location) : ""; - - var props = _extends({}, rest, { - href: href, - navigate: function navigate() { - var location = resolveToLocation(to, context.location); - var method = replace ? history.replace : history.push; - method(location); - } - }); // React 15 compat - - - if (forwardRefShim !== forwardRef) { - props.ref = forwardedRef || innerRef; - } else { - props.innerRef = innerRef; - } - - return React.createElement(component, props); - }); -}); - -{ - var toType = PropTypes.oneOfType([PropTypes.string, PropTypes.object, PropTypes.func]); - var refType = PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.shape({ - current: PropTypes.any - })]); - Link.displayName = "Link"; - Link.propTypes = { - innerRef: refType, - onClick: PropTypes.func, - replace: PropTypes.bool, - target: PropTypes.string, - to: toType.isRequired - }; -} - -var forwardRefShim$1 = function forwardRefShim(C) { - return C; -}; - -var forwardRef$1 = React.forwardRef; - -if (typeof forwardRef$1 === "undefined") { - forwardRef$1 = forwardRefShim$1; -} - -function joinClassnames() { - for (var _len = arguments.length, classnames = new Array(_len), _key = 0; _key < _len; _key++) { - classnames[_key] = arguments[_key]; - } - - return classnames.filter(function (i) { - return i; - }).join(" "); -} -/** - * A wrapper that knows if it's "active" or not. - */ - - -var NavLink = forwardRef$1(function (_ref, forwardedRef) { - var _ref$ariaCurrent = _ref["aria-current"], - ariaCurrent = _ref$ariaCurrent === void 0 ? "page" : _ref$ariaCurrent, - _ref$activeClassName = _ref.activeClassName, - activeClassName = _ref$activeClassName === void 0 ? "active" : _ref$activeClassName, - activeStyle = _ref.activeStyle, - classNameProp = _ref.className, - exact = _ref.exact, - isActiveProp = _ref.isActive, - locationProp = _ref.location, - sensitive = _ref.sensitive, - strict = _ref.strict, - styleProp = _ref.style, - to = _ref.to, - innerRef = _ref.innerRef, - rest = _objectWithoutPropertiesLoose(_ref, ["aria-current", "activeClassName", "activeStyle", "className", "exact", "isActive", "location", "sensitive", "strict", "style", "to", "innerRef"]); - - return React.createElement(reactRouter.__RouterContext.Consumer, null, function (context) { - !context ? invariant(false, "You should not use outside a ") : void 0; - var currentLocation = locationProp || context.location; - var toLocation = normalizeToLocation(resolveToLocation(to, currentLocation), currentLocation); - var path = toLocation.pathname; // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202 - - var escapedPath = path && path.replace(/([.+*?=^!:${}()[\]|/\\])/g, "\\$1"); - var match = escapedPath ? reactRouter.matchPath(currentLocation.pathname, { - path: escapedPath, - exact: exact, - sensitive: sensitive, - strict: strict - }) : null; - var isActive = !!(isActiveProp ? isActiveProp(match, currentLocation) : match); - var className = isActive ? joinClassnames(classNameProp, activeClassName) : classNameProp; - var style = isActive ? _extends({}, styleProp, {}, activeStyle) : styleProp; - - var props = _extends({ - "aria-current": isActive && ariaCurrent || null, - className: className, - style: style, - to: toLocation - }, rest); // React 15 compat - - - if (forwardRefShim$1 !== forwardRef$1) { - props.ref = forwardedRef || innerRef; - } else { - props.innerRef = innerRef; - } - - return React.createElement(Link, props); - }); -}); - -{ - NavLink.displayName = "NavLink"; - var ariaCurrentType = PropTypes.oneOf(["page", "step", "location", "date", "time", "true"]); - NavLink.propTypes = _extends({}, Link.propTypes, { - "aria-current": ariaCurrentType, - activeClassName: PropTypes.string, - activeStyle: PropTypes.object, - className: PropTypes.string, - exact: PropTypes.bool, - isActive: PropTypes.func, - location: PropTypes.object, - sensitive: PropTypes.bool, - strict: PropTypes.bool, - style: PropTypes.object - }); -} - -Object.defineProperty(exports, 'MemoryRouter', { - enumerable: true, - get: function () { - return reactRouter.MemoryRouter; - } -}); -Object.defineProperty(exports, 'Prompt', { - enumerable: true, - get: function () { - return reactRouter.Prompt; - } -}); -Object.defineProperty(exports, 'Redirect', { - enumerable: true, - get: function () { - return reactRouter.Redirect; - } -}); -Object.defineProperty(exports, 'Route', { - enumerable: true, - get: function () { - return reactRouter.Route; - } -}); -Object.defineProperty(exports, 'Router', { - enumerable: true, - get: function () { - return reactRouter.Router; - } -}); -Object.defineProperty(exports, 'StaticRouter', { - enumerable: true, - get: function () { - return reactRouter.StaticRouter; - } -}); -Object.defineProperty(exports, 'Switch', { - enumerable: true, - get: function () { - return reactRouter.Switch; - } -}); -Object.defineProperty(exports, 'generatePath', { - enumerable: true, - get: function () { - return reactRouter.generatePath; - } -}); -Object.defineProperty(exports, 'matchPath', { - enumerable: true, - get: function () { - return reactRouter.matchPath; - } -}); -Object.defineProperty(exports, 'useHistory', { - enumerable: true, - get: function () { - return reactRouter.useHistory; - } -}); -Object.defineProperty(exports, 'useLocation', { - enumerable: true, - get: function () { - return reactRouter.useLocation; - } -}); -Object.defineProperty(exports, 'useParams', { - enumerable: true, - get: function () { - return reactRouter.useParams; - } -}); -Object.defineProperty(exports, 'useRouteMatch', { - enumerable: true, - get: function () { - return reactRouter.useRouteMatch; - } -}); -Object.defineProperty(exports, 'withRouter', { - enumerable: true, - get: function () { - return reactRouter.withRouter; - } -}); -exports.BrowserRouter = BrowserRouter; -exports.HashRouter = HashRouter; -exports.Link = Link; -exports.NavLink = NavLink; -//# sourceMappingURL=react-router-dom.js.map diff --git a/node_modules/react-router-dom/cjs/react-router-dom.js.map b/node_modules/react-router-dom/cjs/react-router-dom.js.map deleted file mode 100644 index 9681f40..0000000 --- a/node_modules/react-router-dom/cjs/react-router-dom.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"react-router-dom.js","sources":["../modules/BrowserRouter.js","../modules/HashRouter.js","../modules/utils/locationUtils.js","../modules/Link.js","../modules/NavLink.js"],"sourcesContent":["import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n );\n };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n return ;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const method = replace ? history.replace : history.push;\n\n method(location);\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link.js\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\",\n activeStyle,\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n sensitive,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n sensitive,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n const className = isActive\n ? joinClassnames(classNameProp, activeClassName)\n : classNameProp;\n const style = isActive ? { ...styleProp, ...activeStyle } : styleProp;\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return ;\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.string,\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.object\n };\n}\n\nexport default NavLink;\n"],"names":["BrowserRouter","history","createHistory","props","render","Router","children","React","Component","propTypes","basename","PropTypes","string","node","forceRefresh","bool","getUserConfirmation","func","keyLength","number","prototype","componentDidMount","warning","HashRouter","hashType","oneOf","resolveToLocation","to","currentLocation","normalizeToLocation","createLocation","forwardRefShim","C","forwardRef","isModifiedEvent","event","metaKey","altKey","ctrlKey","shiftKey","LinkAnchor","forwardedRef","innerRef","navigate","onClick","rest","target","ex","preventDefault","defaultPrevented","button","ref","displayName","Link","component","replace","RouterContext","context","invariant","location","href","createHref","method","push","createElement","toType","oneOfType","object","refType","shape","current","any","isRequired","joinClassnames","classnames","filter","i","join","NavLink","ariaCurrent","activeClassName","activeStyle","classNameProp","className","exact","isActiveProp","isActive","locationProp","sensitive","strict","styleProp","style","toLocation","path","pathname","escapedPath","match","matchPath","ariaCurrentType"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/react-router-dom/cjs/react-router-dom.min.js b/node_modules/react-router-dom/cjs/react-router-dom.min.js deleted file mode 100644 index 17ec8ca..0000000 --- a/node_modules/react-router-dom/cjs/react-router-dom.min.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";function _interopDefault(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var reactRouter=require("react-router"),React=_interopDefault(require("react")),history=require("history");require("prop-types"),require("tiny-warning");var invariant=_interopDefault(require("tiny-invariant"));function _extends(){return(_extends=Object.assign||function(e){for(var t=1;t that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n );\n };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n return ;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const method = replace ? history.replace : history.push;\n\n method(location);\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link.js\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\",\n activeStyle,\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n sensitive,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n sensitive,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n const className = isActive\n ? joinClassnames(classNameProp, activeClassName)\n : classNameProp;\n const style = isActive ? { ...styleProp, ...activeStyle } : styleProp;\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return ;\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.string,\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.object\n };\n}\n\nexport default NavLink;\n"],"names":["BrowserRouter","history","createHistory","_this","props","render","React","Router","this","children","Component","HashRouter","resolveToLocation","to","currentLocation","normalizeToLocation","createLocation","forwardRefShim","C","forwardRef","isModifiedEvent","event","metaKey","altKey","ctrlKey","shiftKey","LinkAnchor","forwardedRef","innerRef","navigate","onClick","rest","target","ex","preventDefault","defaultPrevented","button","ref","Link","component","replace","RouterContext","Consumer","context","invariant","location","href","createHref","push","createElement","joinClassnames","classnames","filter","i","join","NavLink","ariaCurrent","activeClassName","activeStyle","classNameProp","className","exact","isActiveProp","isActive","locationProp","sensitive","strict","styleProp","style","toLocation","path","pathname","escapedPath","match","matchPath"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/react-router-dom/es/BrowserRouter.js b/node_modules/react-router-dom/es/BrowserRouter.js deleted file mode 100644 index b6093cf..0000000 --- a/node_modules/react-router-dom/es/BrowserRouter.js +++ /dev/null @@ -1,5 +0,0 @@ -import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js"; -warnAboutDeprecatedESMImport("BrowserRouter"); - -import { BrowserRouter } from "../esm/react-router-dom.js"; -export default BrowserRouter; diff --git a/node_modules/react-router-dom/es/HashRouter.js b/node_modules/react-router-dom/es/HashRouter.js deleted file mode 100644 index e6ef546..0000000 --- a/node_modules/react-router-dom/es/HashRouter.js +++ /dev/null @@ -1,5 +0,0 @@ -import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js"; -warnAboutDeprecatedESMImport("HashRouter"); - -import { HashRouter } from "../esm/react-router-dom.js"; -export default HashRouter; diff --git a/node_modules/react-router-dom/es/Link.js b/node_modules/react-router-dom/es/Link.js deleted file mode 100644 index 33d3cb4..0000000 --- a/node_modules/react-router-dom/es/Link.js +++ /dev/null @@ -1,5 +0,0 @@ -import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js"; -warnAboutDeprecatedESMImport("Link"); - -import { Link } from "../esm/react-router-dom.js"; -export default Link; diff --git a/node_modules/react-router-dom/es/MemoryRouter.js b/node_modules/react-router-dom/es/MemoryRouter.js deleted file mode 100644 index 4f1e1fd..0000000 --- a/node_modules/react-router-dom/es/MemoryRouter.js +++ /dev/null @@ -1,5 +0,0 @@ -import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js"; -warnAboutDeprecatedESMImport("MemoryRouter"); - -import { MemoryRouter } from "../esm/react-router-dom.js"; -export default MemoryRouter; diff --git a/node_modules/react-router-dom/es/NavLink.js b/node_modules/react-router-dom/es/NavLink.js deleted file mode 100644 index b73967f..0000000 --- a/node_modules/react-router-dom/es/NavLink.js +++ /dev/null @@ -1,5 +0,0 @@ -import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js"; -warnAboutDeprecatedESMImport("NavLink"); - -import { NavLink } from "../esm/react-router-dom.js"; -export default NavLink; diff --git a/node_modules/react-router-dom/es/Prompt.js b/node_modules/react-router-dom/es/Prompt.js deleted file mode 100644 index fa5bc49..0000000 --- a/node_modules/react-router-dom/es/Prompt.js +++ /dev/null @@ -1,5 +0,0 @@ -import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js"; -warnAboutDeprecatedESMImport("Prompt"); - -import { Prompt } from "../esm/react-router-dom.js"; -export default Prompt; diff --git a/node_modules/react-router-dom/es/Redirect.js b/node_modules/react-router-dom/es/Redirect.js deleted file mode 100644 index c472bf8..0000000 --- a/node_modules/react-router-dom/es/Redirect.js +++ /dev/null @@ -1,5 +0,0 @@ -import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js"; -warnAboutDeprecatedESMImport("Redirect"); - -import { Redirect } from "../esm/react-router-dom.js"; -export default Redirect; diff --git a/node_modules/react-router-dom/es/Route.js b/node_modules/react-router-dom/es/Route.js deleted file mode 100644 index 3cc3589..0000000 --- a/node_modules/react-router-dom/es/Route.js +++ /dev/null @@ -1,5 +0,0 @@ -import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js"; -warnAboutDeprecatedESMImport("Route"); - -import { Route } from "../esm/react-router-dom.js"; -export default Route; diff --git a/node_modules/react-router-dom/es/Router.js b/node_modules/react-router-dom/es/Router.js deleted file mode 100644 index 9ca9e1c..0000000 --- a/node_modules/react-router-dom/es/Router.js +++ /dev/null @@ -1,5 +0,0 @@ -import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js"; -warnAboutDeprecatedESMImport("Router"); - -import { Router } from "../esm/react-router-dom.js"; -export default Router; diff --git a/node_modules/react-router-dom/es/StaticRouter.js b/node_modules/react-router-dom/es/StaticRouter.js deleted file mode 100644 index 93bb86e..0000000 --- a/node_modules/react-router-dom/es/StaticRouter.js +++ /dev/null @@ -1,5 +0,0 @@ -import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js"; -warnAboutDeprecatedESMImport("StaticRouter"); - -import { StaticRouter } from "../esm/react-router-dom.js"; -export default StaticRouter; diff --git a/node_modules/react-router-dom/es/Switch.js b/node_modules/react-router-dom/es/Switch.js deleted file mode 100644 index 04a5c03..0000000 --- a/node_modules/react-router-dom/es/Switch.js +++ /dev/null @@ -1,5 +0,0 @@ -import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js"; -warnAboutDeprecatedESMImport("Switch"); - -import { Switch } from "../esm/react-router-dom.js"; -export default Switch; diff --git a/node_modules/react-router-dom/es/generatePath.js b/node_modules/react-router-dom/es/generatePath.js deleted file mode 100644 index 669e227..0000000 --- a/node_modules/react-router-dom/es/generatePath.js +++ /dev/null @@ -1,5 +0,0 @@ -import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js"; -warnAboutDeprecatedESMImport("generatePath"); - -import { generatePath } from "../esm/react-router-dom.js"; -export default generatePath; diff --git a/node_modules/react-router-dom/es/matchPath.js b/node_modules/react-router-dom/es/matchPath.js deleted file mode 100644 index b0469d5..0000000 --- a/node_modules/react-router-dom/es/matchPath.js +++ /dev/null @@ -1,5 +0,0 @@ -import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js"; -warnAboutDeprecatedESMImport("matchPath"); - -import { matchPath } from "../esm/react-router-dom.js"; -export default matchPath; diff --git a/node_modules/react-router-dom/es/warnAboutDeprecatedESMImport.js b/node_modules/react-router-dom/es/warnAboutDeprecatedESMImport.js deleted file mode 100644 index 3a330e4..0000000 --- a/node_modules/react-router-dom/es/warnAboutDeprecatedESMImport.js +++ /dev/null @@ -1,34 +0,0 @@ -/* eslint-disable prefer-arrow-callback, no-empty */ -var printWarning = function() {}; - -if (process.env.NODE_ENV !== "production") { - printWarning = function(format, subs) { - var index = 0; - var message = - "Warning: " + - (subs.length > 0 - ? format.replace(/%s/g, function() { - return subs[index++]; - }) - : format); - - if (typeof console !== "undefined") { - console.error(message); - } - - try { - // --- Welcome to debugging React Router --- - // This error was thrown as a convenience so that you can use the - // stack trace to find the callsite that triggered this warning. - throw new Error(message); - } catch (e) {} - }; -} - -export default function(member) { - printWarning( - 'Please use `import { %s } from "react-router-dom"` instead of `import %s from "react-router-dom/es/%s"`. ' + - "Support for the latter will be removed in the next major release.", - [member, member] - ); -} diff --git a/node_modules/react-router-dom/es/withRouter.js b/node_modules/react-router-dom/es/withRouter.js deleted file mode 100644 index 3414fc9..0000000 --- a/node_modules/react-router-dom/es/withRouter.js +++ /dev/null @@ -1,5 +0,0 @@ -import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js"; -warnAboutDeprecatedESMImport("withRouter"); - -import { withRouter } from "../esm/react-router-dom.js"; -export default withRouter; diff --git a/node_modules/react-router-dom/esm/react-router-dom.js b/node_modules/react-router-dom/esm/react-router-dom.js deleted file mode 100644 index b153684..0000000 --- a/node_modules/react-router-dom/esm/react-router-dom.js +++ /dev/null @@ -1,317 +0,0 @@ -import { Router, __RouterContext, matchPath } from 'react-router'; -export { MemoryRouter, Prompt, Redirect, Route, Router, StaticRouter, Switch, generatePath, matchPath, useHistory, useLocation, useParams, useRouteMatch, withRouter } from 'react-router'; -import _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose'; -import React from 'react'; -import { createBrowserHistory, createHashHistory, createLocation } from 'history'; -import PropTypes from 'prop-types'; -import warning from 'tiny-warning'; -import _extends from '@babel/runtime/helpers/esm/extends'; -import _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose'; -import invariant from 'tiny-invariant'; - -/** - * The public API for a that uses HTML5 history. - */ - -var BrowserRouter = -/*#__PURE__*/ -function (_React$Component) { - _inheritsLoose(BrowserRouter, _React$Component); - - function BrowserRouter() { - var _this; - - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this; - _this.history = createBrowserHistory(_this.props); - return _this; - } - - var _proto = BrowserRouter.prototype; - - _proto.render = function render() { - return React.createElement(Router, { - history: this.history, - children: this.props.children - }); - }; - - return BrowserRouter; -}(React.Component); - -if (process.env.NODE_ENV !== "production") { - BrowserRouter.propTypes = { - basename: PropTypes.string, - children: PropTypes.node, - forceRefresh: PropTypes.bool, - getUserConfirmation: PropTypes.func, - keyLength: PropTypes.number - }; - - BrowserRouter.prototype.componentDidMount = function () { - process.env.NODE_ENV !== "production" ? warning(!this.props.history, " ignores the history prop. To use a custom history, " + "use `import { Router }` instead of `import { BrowserRouter as Router }`.") : void 0; - }; -} - -/** - * The public API for a that uses window.location.hash. - */ - -var HashRouter = -/*#__PURE__*/ -function (_React$Component) { - _inheritsLoose(HashRouter, _React$Component); - - function HashRouter() { - var _this; - - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this; - _this.history = createHashHistory(_this.props); - return _this; - } - - var _proto = HashRouter.prototype; - - _proto.render = function render() { - return React.createElement(Router, { - history: this.history, - children: this.props.children - }); - }; - - return HashRouter; -}(React.Component); - -if (process.env.NODE_ENV !== "production") { - HashRouter.propTypes = { - basename: PropTypes.string, - children: PropTypes.node, - getUserConfirmation: PropTypes.func, - hashType: PropTypes.oneOf(["hashbang", "noslash", "slash"]) - }; - - HashRouter.prototype.componentDidMount = function () { - process.env.NODE_ENV !== "production" ? warning(!this.props.history, " ignores the history prop. To use a custom history, " + "use `import { Router }` instead of `import { HashRouter as Router }`.") : void 0; - }; -} - -var resolveToLocation = function resolveToLocation(to, currentLocation) { - return typeof to === "function" ? to(currentLocation) : to; -}; -var normalizeToLocation = function normalizeToLocation(to, currentLocation) { - return typeof to === "string" ? createLocation(to, null, null, currentLocation) : to; -}; - -var forwardRefShim = function forwardRefShim(C) { - return C; -}; - -var forwardRef = React.forwardRef; - -if (typeof forwardRef === "undefined") { - forwardRef = forwardRefShim; -} - -function isModifiedEvent(event) { - return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey); -} - -var LinkAnchor = forwardRef(function (_ref, forwardedRef) { - var innerRef = _ref.innerRef, - navigate = _ref.navigate, - _onClick = _ref.onClick, - rest = _objectWithoutPropertiesLoose(_ref, ["innerRef", "navigate", "onClick"]); - - var target = rest.target; - - var props = _extends({}, rest, { - onClick: function onClick(event) { - try { - if (_onClick) _onClick(event); - } catch (ex) { - event.preventDefault(); - throw ex; - } - - if (!event.defaultPrevented && // onClick prevented default - event.button === 0 && ( // ignore everything but left clicks - !target || target === "_self") && // let browser handle "target=_blank" etc. - !isModifiedEvent(event) // ignore clicks with modifier keys - ) { - event.preventDefault(); - navigate(); - } - } - }); // React 15 compat - - - if (forwardRefShim !== forwardRef) { - props.ref = forwardedRef || innerRef; - } else { - props.ref = innerRef; - } - /* eslint-disable-next-line jsx-a11y/anchor-has-content */ - - - return React.createElement("a", props); -}); - -if (process.env.NODE_ENV !== "production") { - LinkAnchor.displayName = "LinkAnchor"; -} -/** - * The public API for rendering a history-aware . - */ - - -var Link = forwardRef(function (_ref2, forwardedRef) { - var _ref2$component = _ref2.component, - component = _ref2$component === void 0 ? LinkAnchor : _ref2$component, - replace = _ref2.replace, - to = _ref2.to, - innerRef = _ref2.innerRef, - rest = _objectWithoutPropertiesLoose(_ref2, ["component", "replace", "to", "innerRef"]); - - return React.createElement(__RouterContext.Consumer, null, function (context) { - !context ? process.env.NODE_ENV !== "production" ? invariant(false, "You should not use outside a ") : invariant(false) : void 0; - var history = context.history; - var location = normalizeToLocation(resolveToLocation(to, context.location), context.location); - var href = location ? history.createHref(location) : ""; - - var props = _extends({}, rest, { - href: href, - navigate: function navigate() { - var location = resolveToLocation(to, context.location); - var method = replace ? history.replace : history.push; - method(location); - } - }); // React 15 compat - - - if (forwardRefShim !== forwardRef) { - props.ref = forwardedRef || innerRef; - } else { - props.innerRef = innerRef; - } - - return React.createElement(component, props); - }); -}); - -if (process.env.NODE_ENV !== "production") { - var toType = PropTypes.oneOfType([PropTypes.string, PropTypes.object, PropTypes.func]); - var refType = PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.shape({ - current: PropTypes.any - })]); - Link.displayName = "Link"; - Link.propTypes = { - innerRef: refType, - onClick: PropTypes.func, - replace: PropTypes.bool, - target: PropTypes.string, - to: toType.isRequired - }; -} - -var forwardRefShim$1 = function forwardRefShim(C) { - return C; -}; - -var forwardRef$1 = React.forwardRef; - -if (typeof forwardRef$1 === "undefined") { - forwardRef$1 = forwardRefShim$1; -} - -function joinClassnames() { - for (var _len = arguments.length, classnames = new Array(_len), _key = 0; _key < _len; _key++) { - classnames[_key] = arguments[_key]; - } - - return classnames.filter(function (i) { - return i; - }).join(" "); -} -/** - * A wrapper that knows if it's "active" or not. - */ - - -var NavLink = forwardRef$1(function (_ref, forwardedRef) { - var _ref$ariaCurrent = _ref["aria-current"], - ariaCurrent = _ref$ariaCurrent === void 0 ? "page" : _ref$ariaCurrent, - _ref$activeClassName = _ref.activeClassName, - activeClassName = _ref$activeClassName === void 0 ? "active" : _ref$activeClassName, - activeStyle = _ref.activeStyle, - classNameProp = _ref.className, - exact = _ref.exact, - isActiveProp = _ref.isActive, - locationProp = _ref.location, - sensitive = _ref.sensitive, - strict = _ref.strict, - styleProp = _ref.style, - to = _ref.to, - innerRef = _ref.innerRef, - rest = _objectWithoutPropertiesLoose(_ref, ["aria-current", "activeClassName", "activeStyle", "className", "exact", "isActive", "location", "sensitive", "strict", "style", "to", "innerRef"]); - - return React.createElement(__RouterContext.Consumer, null, function (context) { - !context ? process.env.NODE_ENV !== "production" ? invariant(false, "You should not use outside a ") : invariant(false) : void 0; - var currentLocation = locationProp || context.location; - var toLocation = normalizeToLocation(resolveToLocation(to, currentLocation), currentLocation); - var path = toLocation.pathname; // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202 - - var escapedPath = path && path.replace(/([.+*?=^!:${}()[\]|/\\])/g, "\\$1"); - var match = escapedPath ? matchPath(currentLocation.pathname, { - path: escapedPath, - exact: exact, - sensitive: sensitive, - strict: strict - }) : null; - var isActive = !!(isActiveProp ? isActiveProp(match, currentLocation) : match); - var className = isActive ? joinClassnames(classNameProp, activeClassName) : classNameProp; - var style = isActive ? _extends({}, styleProp, {}, activeStyle) : styleProp; - - var props = _extends({ - "aria-current": isActive && ariaCurrent || null, - className: className, - style: style, - to: toLocation - }, rest); // React 15 compat - - - if (forwardRefShim$1 !== forwardRef$1) { - props.ref = forwardedRef || innerRef; - } else { - props.innerRef = innerRef; - } - - return React.createElement(Link, props); - }); -}); - -if (process.env.NODE_ENV !== "production") { - NavLink.displayName = "NavLink"; - var ariaCurrentType = PropTypes.oneOf(["page", "step", "location", "date", "time", "true"]); - NavLink.propTypes = _extends({}, Link.propTypes, { - "aria-current": ariaCurrentType, - activeClassName: PropTypes.string, - activeStyle: PropTypes.object, - className: PropTypes.string, - exact: PropTypes.bool, - isActive: PropTypes.func, - location: PropTypes.object, - sensitive: PropTypes.bool, - strict: PropTypes.bool, - style: PropTypes.object - }); -} - -export { BrowserRouter, HashRouter, Link, NavLink }; -//# sourceMappingURL=react-router-dom.js.map diff --git a/node_modules/react-router-dom/esm/react-router-dom.js.map b/node_modules/react-router-dom/esm/react-router-dom.js.map deleted file mode 100644 index e7bc9d5..0000000 --- a/node_modules/react-router-dom/esm/react-router-dom.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"react-router-dom.js","sources":["../modules/BrowserRouter.js","../modules/HashRouter.js","../modules/utils/locationUtils.js","../modules/Link.js","../modules/NavLink.js"],"sourcesContent":["import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n );\n };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n return ;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const method = replace ? history.replace : history.push;\n\n method(location);\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link.js\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\",\n activeStyle,\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n sensitive,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n sensitive,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n const className = isActive\n ? joinClassnames(classNameProp, activeClassName)\n : classNameProp;\n const style = isActive ? { ...styleProp, ...activeStyle } : styleProp;\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return ;\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.string,\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.object\n };\n}\n\nexport default NavLink;\n"],"names":["BrowserRouter","history","createHistory","props","render","children","React","Component","propTypes","basename","PropTypes","string","node","forceRefresh","bool","getUserConfirmation","func","keyLength","number","prototype","componentDidMount","warning","HashRouter","hashType","oneOf","resolveToLocation","to","currentLocation","normalizeToLocation","createLocation","forwardRefShim","C","forwardRef","isModifiedEvent","event","metaKey","altKey","ctrlKey","shiftKey","LinkAnchor","forwardedRef","innerRef","navigate","onClick","rest","target","ex","preventDefault","defaultPrevented","button","ref","displayName","Link","component","replace","RouterContext","context","invariant","location","href","createHref","method","push","createElement","toType","oneOfType","object","refType","shape","current","any","isRequired","joinClassnames","classnames","filter","i","join","NavLink","ariaCurrent","activeClassName","activeStyle","classNameProp","className","exact","isActiveProp","isActive","locationProp","sensitive","strict","styleProp","style","toLocation","path","pathname","escapedPath","match","matchPath","ariaCurrentType"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/react-router-dom/generatePath.js b/node_modules/react-router-dom/generatePath.js deleted file mode 100644 index d487dd2..0000000 --- a/node_modules/react-router-dom/generatePath.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -require("./warnAboutDeprecatedCJSRequire")("generatePath"); -module.exports = require("./index.js").generatePath; diff --git a/node_modules/react-router-dom/index.js b/node_modules/react-router-dom/index.js deleted file mode 100644 index 92172e2..0000000 --- a/node_modules/react-router-dom/index.js +++ /dev/null @@ -1,7 +0,0 @@ -"use strict"; - -if (process.env.NODE_ENV === "production") { - module.exports = require("./cjs/react-router-dom.min.js"); -} else { - module.exports = require("./cjs/react-router-dom.js"); -} diff --git a/node_modules/react-router-dom/matchPath.js b/node_modules/react-router-dom/matchPath.js deleted file mode 100644 index 6d1fe33..0000000 --- a/node_modules/react-router-dom/matchPath.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -require("./warnAboutDeprecatedCJSRequire")("matchPath"); -module.exports = require("./index.js").matchPath; diff --git a/node_modules/react-router-dom/modules/BrowserRouter.js b/node_modules/react-router-dom/modules/BrowserRouter.js deleted file mode 100644 index 9ae0e74..0000000 --- a/node_modules/react-router-dom/modules/BrowserRouter.js +++ /dev/null @@ -1,36 +0,0 @@ -import React from "react"; -import { Router } from "react-router"; -import { createBrowserHistory as createHistory } from "history"; -import PropTypes from "prop-types"; -import warning from "tiny-warning"; - -/** - * The public API for a that uses HTML5 history. - */ -class BrowserRouter extends React.Component { - history = createHistory(this.props); - - render() { - return ; - } -} - -if (__DEV__) { - BrowserRouter.propTypes = { - basename: PropTypes.string, - children: PropTypes.node, - forceRefresh: PropTypes.bool, - getUserConfirmation: PropTypes.func, - keyLength: PropTypes.number - }; - - BrowserRouter.prototype.componentDidMount = function() { - warning( - !this.props.history, - " ignores the history prop. To use a custom history, " + - "use `import { Router }` instead of `import { BrowserRouter as Router }`." - ); - }; -} - -export default BrowserRouter; diff --git a/node_modules/react-router-dom/modules/HashRouter.js b/node_modules/react-router-dom/modules/HashRouter.js deleted file mode 100644 index 8a5bd71..0000000 --- a/node_modules/react-router-dom/modules/HashRouter.js +++ /dev/null @@ -1,35 +0,0 @@ -import React from "react"; -import { Router } from "react-router"; -import { createHashHistory as createHistory } from "history"; -import PropTypes from "prop-types"; -import warning from "tiny-warning"; - -/** - * The public API for a that uses window.location.hash. - */ -class HashRouter extends React.Component { - history = createHistory(this.props); - - render() { - return ; - } -} - -if (__DEV__) { - HashRouter.propTypes = { - basename: PropTypes.string, - children: PropTypes.node, - getUserConfirmation: PropTypes.func, - hashType: PropTypes.oneOf(["hashbang", "noslash", "slash"]) - }; - - HashRouter.prototype.componentDidMount = function() { - warning( - !this.props.history, - " ignores the history prop. To use a custom history, " + - "use `import { Router }` instead of `import { HashRouter as Router }`." - ); - }; -} - -export default HashRouter; diff --git a/node_modules/react-router-dom/modules/Link.js b/node_modules/react-router-dom/modules/Link.js deleted file mode 100644 index 25e9de5..0000000 --- a/node_modules/react-router-dom/modules/Link.js +++ /dev/null @@ -1,146 +0,0 @@ -import React from "react"; -import { __RouterContext as RouterContext } from "react-router"; -import PropTypes from "prop-types"; -import invariant from "tiny-invariant"; -import { - resolveToLocation, - normalizeToLocation -} from "./utils/locationUtils.js"; - -// React 15 compat -const forwardRefShim = C => C; -let { forwardRef } = React; -if (typeof forwardRef === "undefined") { - forwardRef = forwardRefShim; -} - -function isModifiedEvent(event) { - return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey); -} - -const LinkAnchor = forwardRef( - ( - { - innerRef, // TODO: deprecate - navigate, - onClick, - ...rest - }, - forwardedRef - ) => { - const { target } = rest; - - let props = { - ...rest, - onClick: event => { - try { - if (onClick) onClick(event); - } catch (ex) { - event.preventDefault(); - throw ex; - } - - if ( - !event.defaultPrevented && // onClick prevented default - event.button === 0 && // ignore everything but left clicks - (!target || target === "_self") && // let browser handle "target=_blank" etc. - !isModifiedEvent(event) // ignore clicks with modifier keys - ) { - event.preventDefault(); - navigate(); - } - } - }; - - // React 15 compat - if (forwardRefShim !== forwardRef) { - props.ref = forwardedRef || innerRef; - } else { - props.ref = innerRef; - } - - /* eslint-disable-next-line jsx-a11y/anchor-has-content */ - return ; - } -); - -if (__DEV__) { - LinkAnchor.displayName = "LinkAnchor"; -} - -/** - * The public API for rendering a history-aware . - */ -const Link = forwardRef( - ( - { - component = LinkAnchor, - replace, - to, - innerRef, // TODO: deprecate - ...rest - }, - forwardedRef - ) => { - return ( - - {context => { - invariant(context, "You should not use outside a "); - - const { history } = context; - - const location = normalizeToLocation( - resolveToLocation(to, context.location), - context.location - ); - - const href = location ? history.createHref(location) : ""; - const props = { - ...rest, - href, - navigate() { - const location = resolveToLocation(to, context.location); - const method = replace ? history.replace : history.push; - - method(location); - } - }; - - // React 15 compat - if (forwardRefShim !== forwardRef) { - props.ref = forwardedRef || innerRef; - } else { - props.innerRef = innerRef; - } - - return React.createElement(component, props); - }} - - ); - } -); - -if (__DEV__) { - const toType = PropTypes.oneOfType([ - PropTypes.string, - PropTypes.object, - PropTypes.func - ]); - const refType = PropTypes.oneOfType([ - PropTypes.string, - PropTypes.func, - PropTypes.shape({ current: PropTypes.any }) - ]); - - Link.displayName = "Link"; - - Link.propTypes = { - innerRef: refType, - onClick: PropTypes.func, - replace: PropTypes.bool, - target: PropTypes.string, - to: toType.isRequired - }; -} - -export default Link; diff --git a/node_modules/react-router-dom/modules/NavLink.js b/node_modules/react-router-dom/modules/NavLink.js deleted file mode 100644 index 1c3274c..0000000 --- a/node_modules/react-router-dom/modules/NavLink.js +++ /dev/null @@ -1,125 +0,0 @@ -import React from "react"; -import { __RouterContext as RouterContext, matchPath } from "react-router"; -import PropTypes from "prop-types"; -import invariant from "tiny-invariant"; -import Link from "./Link.js"; -import { - resolveToLocation, - normalizeToLocation -} from "./utils/locationUtils.js"; - -// React 15 compat -const forwardRefShim = C => C; -let { forwardRef } = React; -if (typeof forwardRef === "undefined") { - forwardRef = forwardRefShim; -} - -function joinClassnames(...classnames) { - return classnames.filter(i => i).join(" "); -} - -/** - * A wrapper that knows if it's "active" or not. - */ -const NavLink = forwardRef( - ( - { - "aria-current": ariaCurrent = "page", - activeClassName = "active", - activeStyle, - className: classNameProp, - exact, - isActive: isActiveProp, - location: locationProp, - sensitive, - strict, - style: styleProp, - to, - innerRef, // TODO: deprecate - ...rest - }, - forwardedRef - ) => { - return ( - - {context => { - invariant(context, "You should not use outside a "); - - const currentLocation = locationProp || context.location; - const toLocation = normalizeToLocation( - resolveToLocation(to, currentLocation), - currentLocation - ); - const { pathname: path } = toLocation; - // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202 - const escapedPath = - path && path.replace(/([.+*?=^!:${}()[\]|/\\])/g, "\\$1"); - - const match = escapedPath - ? matchPath(currentLocation.pathname, { - path: escapedPath, - exact, - sensitive, - strict - }) - : null; - const isActive = !!(isActiveProp - ? isActiveProp(match, currentLocation) - : match); - - const className = isActive - ? joinClassnames(classNameProp, activeClassName) - : classNameProp; - const style = isActive ? { ...styleProp, ...activeStyle } : styleProp; - - const props = { - "aria-current": (isActive && ariaCurrent) || null, - className, - style, - to: toLocation, - ...rest - }; - - // React 15 compat - if (forwardRefShim !== forwardRef) { - props.ref = forwardedRef || innerRef; - } else { - props.innerRef = innerRef; - } - - return ; - }} - - ); - } -); - -if (__DEV__) { - NavLink.displayName = "NavLink"; - - const ariaCurrentType = PropTypes.oneOf([ - "page", - "step", - "location", - "date", - "time", - "true" - ]); - - NavLink.propTypes = { - ...Link.propTypes, - "aria-current": ariaCurrentType, - activeClassName: PropTypes.string, - activeStyle: PropTypes.object, - className: PropTypes.string, - exact: PropTypes.bool, - isActive: PropTypes.func, - location: PropTypes.object, - sensitive: PropTypes.bool, - strict: PropTypes.bool, - style: PropTypes.object - }; -} - -export default NavLink; diff --git a/node_modules/react-router-dom/modules/index.js b/node_modules/react-router-dom/modules/index.js deleted file mode 100644 index 35c75a2..0000000 --- a/node_modules/react-router-dom/modules/index.js +++ /dev/null @@ -1,21 +0,0 @@ -export { - MemoryRouter, - Prompt, - Redirect, - Route, - Router, - StaticRouter, - Switch, - generatePath, - matchPath, - withRouter, - useHistory, - useLocation, - useParams, - useRouteMatch -} from "react-router"; - -export { default as BrowserRouter } from "./BrowserRouter.js"; -export { default as HashRouter } from "./HashRouter.js"; -export { default as Link } from "./Link.js"; -export { default as NavLink } from "./NavLink.js"; diff --git a/node_modules/react-router-dom/modules/utils/locationUtils.js b/node_modules/react-router-dom/modules/utils/locationUtils.js deleted file mode 100644 index 47c1ae1..0000000 --- a/node_modules/react-router-dom/modules/utils/locationUtils.js +++ /dev/null @@ -1,10 +0,0 @@ -import { createLocation } from "history"; - -export const resolveToLocation = (to, currentLocation) => - typeof to === "function" ? to(currentLocation) : to; - -export const normalizeToLocation = (to, currentLocation) => { - return typeof to === "string" - ? createLocation(to, null, null, currentLocation) - : to; -}; diff --git a/node_modules/react-router-dom/package.json b/node_modules/react-router-dom/package.json deleted file mode 100644 index f493067..0000000 --- a/node_modules/react-router-dom/package.json +++ /dev/null @@ -1,101 +0,0 @@ -{ - "_from": "react-router-dom", - "_id": "react-router-dom@5.2.0", - "_inBundle": false, - "_integrity": "sha512-gxAmfylo2QUjcwxI63RhQ5G85Qqt4voZpUXSEqCwykV0baaOTQDR1f0PmY8AELqIyVc0NEZUj0Gov5lNGcXgsA==", - "_location": "/react-router-dom", - "_phantomChildren": {}, - "_requested": { - "type": "tag", - "registry": true, - "raw": "react-router-dom", - "name": "react-router-dom", - "escapedName": "react-router-dom", - "rawSpec": "", - "saveSpec": null, - "fetchSpec": "latest" - }, - "_requiredBy": [ - "#USER", - "/" - ], - "_resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.2.0.tgz", - "_shasum": "9e65a4d0c45e13289e66c7b17c7e175d0ea15662", - "_spec": "react-router-dom", - "_where": "G:\\_comp_\\odsc\\orig\\AllNotes", - "author": { - "name": "React Training", - "email": "hello@reacttraining.com" - }, - "browserify": { - "transform": [ - "loose-envify" - ] - }, - "bugs": { - "url": "https://github.com/ReactTraining/react-router/issues" - }, - "bundleDependencies": false, - "dependencies": { - "@babel/runtime": "^7.1.2", - "history": "^4.9.0", - "loose-envify": "^1.3.1", - "prop-types": "^15.6.2", - "react-router": "5.2.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" - }, - "deprecated": false, - "description": "DOM bindings for React Router", - "files": [ - "BrowserRouter.js", - "HashRouter.js", - "Link.js", - "MemoryRouter.js", - "NavLink.js", - "Prompt.js", - "Redirect.js", - "Route.js", - "Router.js", - "StaticRouter.js", - "Switch.js", - "cjs", - "es", - "esm", - "index.js", - "generatePath.js", - "matchPath.js", - "modules/*.js", - "modules/utils/*.js", - "withRouter.js", - "warnAboutDeprecatedCJSRequire.js", - "umd" - ], - "gitHead": "21a62e55c0d6196002bd4ab5b3350514976928cf", - "homepage": "https://github.com/ReactTraining/react-router#readme", - "keywords": [ - "react", - "router", - "route", - "routing", - "history", - "link" - ], - "license": "MIT", - "main": "index.js", - "module": "esm/react-router-dom.js", - "name": "react-router-dom", - "peerDependencies": { - "react": ">=15" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/ReactTraining/react-router.git" - }, - "scripts": { - "build": "rollup -c", - "lint": "eslint modules" - }, - "sideEffects": false, - "version": "5.2.0" -} diff --git a/node_modules/react-router-dom/umd/react-router-dom.js b/node_modules/react-router-dom/umd/react-router-dom.js deleted file mode 100644 index 5ad6347..0000000 --- a/node_modules/react-router-dom/umd/react-router-dom.js +++ /dev/null @@ -1,3969 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react')) : - typeof define === 'function' && define.amd ? define(['exports', 'react'], factory) : - (global = global || self, factory(global.ReactRouterDOM = {}, global.React)); -}(this, function (exports, React) { 'use strict'; - - var React__default = 'default' in React ? React['default'] : React; - - function _inheritsLoose(subClass, superClass) { - subClass.prototype = Object.create(superClass.prototype); - subClass.prototype.constructor = subClass; - subClass.__proto__ = superClass; - } - - function unwrapExports (x) { - return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x; - } - - function createCommonjsModule(fn, module) { - return module = { exports: {} }, fn(module, module.exports), module.exports; - } - - var reactIs_production_min = createCommonjsModule(function (module, exports) { - Object.defineProperty(exports,"__esModule",{value:!0}); - var b="function"===typeof Symbol&&Symbol.for,c=b?Symbol.for("react.element"):60103,d=b?Symbol.for("react.portal"):60106,e=b?Symbol.for("react.fragment"):60107,f=b?Symbol.for("react.strict_mode"):60108,g=b?Symbol.for("react.profiler"):60114,h=b?Symbol.for("react.provider"):60109,k=b?Symbol.for("react.context"):60110,l=b?Symbol.for("react.async_mode"):60111,m=b?Symbol.for("react.concurrent_mode"):60111,n=b?Symbol.for("react.forward_ref"):60112,p=b?Symbol.for("react.suspense"):60113,q=b?Symbol.for("react.suspense_list"): - 60120,r=b?Symbol.for("react.memo"):60115,t=b?Symbol.for("react.lazy"):60116,v=b?Symbol.for("react.fundamental"):60117,w=b?Symbol.for("react.responder"):60118;function x(a){if("object"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case h:return a;default:return u}}case t:case r:case d:return u}}}function y(a){return x(a)===m}exports.typeOf=x;exports.AsyncMode=l; - exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p; - exports.isValidElementType=function(a){return "string"===typeof a||"function"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||"object"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===v||a.$$typeof===w)};exports.isAsyncMode=function(a){return y(a)||x(a)===l};exports.isConcurrentMode=y;exports.isContextConsumer=function(a){return x(a)===k};exports.isContextProvider=function(a){return x(a)===h}; - exports.isElement=function(a){return "object"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return x(a)===n};exports.isFragment=function(a){return x(a)===e};exports.isLazy=function(a){return x(a)===t};exports.isMemo=function(a){return x(a)===r};exports.isPortal=function(a){return x(a)===d};exports.isProfiler=function(a){return x(a)===g};exports.isStrictMode=function(a){return x(a)===f};exports.isSuspense=function(a){return x(a)===p}; - }); - - unwrapExports(reactIs_production_min); - var reactIs_production_min_1 = reactIs_production_min.typeOf; - var reactIs_production_min_2 = reactIs_production_min.AsyncMode; - var reactIs_production_min_3 = reactIs_production_min.ConcurrentMode; - var reactIs_production_min_4 = reactIs_production_min.ContextConsumer; - var reactIs_production_min_5 = reactIs_production_min.ContextProvider; - var reactIs_production_min_6 = reactIs_production_min.Element; - var reactIs_production_min_7 = reactIs_production_min.ForwardRef; - var reactIs_production_min_8 = reactIs_production_min.Fragment; - var reactIs_production_min_9 = reactIs_production_min.Lazy; - var reactIs_production_min_10 = reactIs_production_min.Memo; - var reactIs_production_min_11 = reactIs_production_min.Portal; - var reactIs_production_min_12 = reactIs_production_min.Profiler; - var reactIs_production_min_13 = reactIs_production_min.StrictMode; - var reactIs_production_min_14 = reactIs_production_min.Suspense; - var reactIs_production_min_15 = reactIs_production_min.isValidElementType; - var reactIs_production_min_16 = reactIs_production_min.isAsyncMode; - var reactIs_production_min_17 = reactIs_production_min.isConcurrentMode; - var reactIs_production_min_18 = reactIs_production_min.isContextConsumer; - var reactIs_production_min_19 = reactIs_production_min.isContextProvider; - var reactIs_production_min_20 = reactIs_production_min.isElement; - var reactIs_production_min_21 = reactIs_production_min.isForwardRef; - var reactIs_production_min_22 = reactIs_production_min.isFragment; - var reactIs_production_min_23 = reactIs_production_min.isLazy; - var reactIs_production_min_24 = reactIs_production_min.isMemo; - var reactIs_production_min_25 = reactIs_production_min.isPortal; - var reactIs_production_min_26 = reactIs_production_min.isProfiler; - var reactIs_production_min_27 = reactIs_production_min.isStrictMode; - var reactIs_production_min_28 = reactIs_production_min.isSuspense; - - var reactIs_development = createCommonjsModule(function (module, exports) { - - - - { - (function() { - - Object.defineProperty(exports, '__esModule', { value: true }); - - // The Symbol used to tag the ReactElement-like types. If there is no native Symbol - // nor polyfill, then a plain number is used for performance. - var hasSymbol = typeof Symbol === 'function' && Symbol.for; - - var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7; - var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca; - var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb; - var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc; - var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2; - var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd; - var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; - // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary - // (unstable) APIs that have been removed. Can we remove the symbols? - var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf; - var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf; - var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0; - var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1; - var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8; - var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3; - var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4; - var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5; - var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6; - - function isValidElementType(type) { - return typeof type === 'string' || typeof type === 'function' || - // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill. - type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE); - } - - /** - * Forked from fbjs/warning: - * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js - * - * Only change is we use console.warn instead of console.error, - * and do nothing when 'console' is not supported. - * This really simplifies the code. - * --- - * Similar to invariant but only logs a warning if the condition is not met. - * This can be used to log issues in development environments in critical - * paths. Removing the logging code for production environments will keep the - * same logic and follow the same code paths. - */ - - var lowPriorityWarning = function () {}; - - { - var printWarning = function (format) { - for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - - var argIndex = 0; - var message = 'Warning: ' + format.replace(/%s/g, function () { - return args[argIndex++]; - }); - if (typeof console !== 'undefined') { - console.warn(message); - } - try { - // --- Welcome to debugging React --- - // This error was thrown as a convenience so that you can use this stack - // to find the callsite that caused this warning to fire. - throw new Error(message); - } catch (x) {} - }; - - lowPriorityWarning = function (condition, format) { - if (format === undefined) { - throw new Error('`lowPriorityWarning(condition, format, ...args)` requires a warning ' + 'message argument'); - } - if (!condition) { - for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) { - args[_key2 - 2] = arguments[_key2]; - } - - printWarning.apply(undefined, [format].concat(args)); - } - }; - } - - var lowPriorityWarning$1 = lowPriorityWarning; - - function typeOf(object) { - if (typeof object === 'object' && object !== null) { - var $$typeof = object.$$typeof; - switch ($$typeof) { - case REACT_ELEMENT_TYPE: - var type = object.type; - - switch (type) { - case REACT_ASYNC_MODE_TYPE: - case REACT_CONCURRENT_MODE_TYPE: - case REACT_FRAGMENT_TYPE: - case REACT_PROFILER_TYPE: - case REACT_STRICT_MODE_TYPE: - case REACT_SUSPENSE_TYPE: - return type; - default: - var $$typeofType = type && type.$$typeof; - - switch ($$typeofType) { - case REACT_CONTEXT_TYPE: - case REACT_FORWARD_REF_TYPE: - case REACT_PROVIDER_TYPE: - return $$typeofType; - default: - return $$typeof; - } - } - case REACT_LAZY_TYPE: - case REACT_MEMO_TYPE: - case REACT_PORTAL_TYPE: - return $$typeof; - } - } - - return undefined; - } - - // AsyncMode is deprecated along with isAsyncMode - var AsyncMode = REACT_ASYNC_MODE_TYPE; - var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE; - var ContextConsumer = REACT_CONTEXT_TYPE; - var ContextProvider = REACT_PROVIDER_TYPE; - var Element = REACT_ELEMENT_TYPE; - var ForwardRef = REACT_FORWARD_REF_TYPE; - var Fragment = REACT_FRAGMENT_TYPE; - var Lazy = REACT_LAZY_TYPE; - var Memo = REACT_MEMO_TYPE; - var Portal = REACT_PORTAL_TYPE; - var Profiler = REACT_PROFILER_TYPE; - var StrictMode = REACT_STRICT_MODE_TYPE; - var Suspense = REACT_SUSPENSE_TYPE; - - var hasWarnedAboutDeprecatedIsAsyncMode = false; - - // AsyncMode should be deprecated - function isAsyncMode(object) { - { - if (!hasWarnedAboutDeprecatedIsAsyncMode) { - hasWarnedAboutDeprecatedIsAsyncMode = true; - lowPriorityWarning$1(false, 'The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.'); - } - } - return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE; - } - function isConcurrentMode(object) { - return typeOf(object) === REACT_CONCURRENT_MODE_TYPE; - } - function isContextConsumer(object) { - return typeOf(object) === REACT_CONTEXT_TYPE; - } - function isContextProvider(object) { - return typeOf(object) === REACT_PROVIDER_TYPE; - } - function isElement(object) { - return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE; - } - function isForwardRef(object) { - return typeOf(object) === REACT_FORWARD_REF_TYPE; - } - function isFragment(object) { - return typeOf(object) === REACT_FRAGMENT_TYPE; - } - function isLazy(object) { - return typeOf(object) === REACT_LAZY_TYPE; - } - function isMemo(object) { - return typeOf(object) === REACT_MEMO_TYPE; - } - function isPortal(object) { - return typeOf(object) === REACT_PORTAL_TYPE; - } - function isProfiler(object) { - return typeOf(object) === REACT_PROFILER_TYPE; - } - function isStrictMode(object) { - return typeOf(object) === REACT_STRICT_MODE_TYPE; - } - function isSuspense(object) { - return typeOf(object) === REACT_SUSPENSE_TYPE; - } - - exports.typeOf = typeOf; - exports.AsyncMode = AsyncMode; - exports.ConcurrentMode = ConcurrentMode; - exports.ContextConsumer = ContextConsumer; - exports.ContextProvider = ContextProvider; - exports.Element = Element; - exports.ForwardRef = ForwardRef; - exports.Fragment = Fragment; - exports.Lazy = Lazy; - exports.Memo = Memo; - exports.Portal = Portal; - exports.Profiler = Profiler; - exports.StrictMode = StrictMode; - exports.Suspense = Suspense; - exports.isValidElementType = isValidElementType; - exports.isAsyncMode = isAsyncMode; - exports.isConcurrentMode = isConcurrentMode; - exports.isContextConsumer = isContextConsumer; - exports.isContextProvider = isContextProvider; - exports.isElement = isElement; - exports.isForwardRef = isForwardRef; - exports.isFragment = isFragment; - exports.isLazy = isLazy; - exports.isMemo = isMemo; - exports.isPortal = isPortal; - exports.isProfiler = isProfiler; - exports.isStrictMode = isStrictMode; - exports.isSuspense = isSuspense; - })(); - } - }); - - unwrapExports(reactIs_development); - var reactIs_development_1 = reactIs_development.typeOf; - var reactIs_development_2 = reactIs_development.AsyncMode; - var reactIs_development_3 = reactIs_development.ConcurrentMode; - var reactIs_development_4 = reactIs_development.ContextConsumer; - var reactIs_development_5 = reactIs_development.ContextProvider; - var reactIs_development_6 = reactIs_development.Element; - var reactIs_development_7 = reactIs_development.ForwardRef; - var reactIs_development_8 = reactIs_development.Fragment; - var reactIs_development_9 = reactIs_development.Lazy; - var reactIs_development_10 = reactIs_development.Memo; - var reactIs_development_11 = reactIs_development.Portal; - var reactIs_development_12 = reactIs_development.Profiler; - var reactIs_development_13 = reactIs_development.StrictMode; - var reactIs_development_14 = reactIs_development.Suspense; - var reactIs_development_15 = reactIs_development.isValidElementType; - var reactIs_development_16 = reactIs_development.isAsyncMode; - var reactIs_development_17 = reactIs_development.isConcurrentMode; - var reactIs_development_18 = reactIs_development.isContextConsumer; - var reactIs_development_19 = reactIs_development.isContextProvider; - var reactIs_development_20 = reactIs_development.isElement; - var reactIs_development_21 = reactIs_development.isForwardRef; - var reactIs_development_22 = reactIs_development.isFragment; - var reactIs_development_23 = reactIs_development.isLazy; - var reactIs_development_24 = reactIs_development.isMemo; - var reactIs_development_25 = reactIs_development.isPortal; - var reactIs_development_26 = reactIs_development.isProfiler; - var reactIs_development_27 = reactIs_development.isStrictMode; - var reactIs_development_28 = reactIs_development.isSuspense; - - var reactIs = createCommonjsModule(function (module) { - - { - module.exports = reactIs_development; - } - }); - var reactIs_1 = reactIs.isValidElementType; - - /* - object-assign - (c) Sindre Sorhus - @license MIT - */ - /* eslint-disable no-unused-vars */ - var getOwnPropertySymbols = Object.getOwnPropertySymbols; - var hasOwnProperty = Object.prototype.hasOwnProperty; - var propIsEnumerable = Object.prototype.propertyIsEnumerable; - - function toObject(val) { - if (val === null || val === undefined) { - throw new TypeError('Object.assign cannot be called with null or undefined'); - } - - return Object(val); - } - - function shouldUseNative() { - try { - if (!Object.assign) { - return false; - } - - // Detect buggy property enumeration order in older V8 versions. - - // https://bugs.chromium.org/p/v8/issues/detail?id=4118 - var test1 = new String('abc'); // eslint-disable-line no-new-wrappers - test1[5] = 'de'; - if (Object.getOwnPropertyNames(test1)[0] === '5') { - return false; - } - - // https://bugs.chromium.org/p/v8/issues/detail?id=3056 - var test2 = {}; - for (var i = 0; i < 10; i++) { - test2['_' + String.fromCharCode(i)] = i; - } - var order2 = Object.getOwnPropertyNames(test2).map(function (n) { - return test2[n]; - }); - if (order2.join('') !== '0123456789') { - return false; - } - - // https://bugs.chromium.org/p/v8/issues/detail?id=3056 - var test3 = {}; - 'abcdefghijklmnopqrst'.split('').forEach(function (letter) { - test3[letter] = letter; - }); - if (Object.keys(Object.assign({}, test3)).join('') !== - 'abcdefghijklmnopqrst') { - return false; - } - - return true; - } catch (err) { - // We don't expect any of the above to throw, but better to be safe. - return false; - } - } - - var objectAssign = shouldUseNative() ? Object.assign : function (target, source) { - var from; - var to = toObject(target); - var symbols; - - for (var s = 1; s < arguments.length; s++) { - from = Object(arguments[s]); - - for (var key in from) { - if (hasOwnProperty.call(from, key)) { - to[key] = from[key]; - } - } - - if (getOwnPropertySymbols) { - symbols = getOwnPropertySymbols(from); - for (var i = 0; i < symbols.length; i++) { - if (propIsEnumerable.call(from, symbols[i])) { - to[symbols[i]] = from[symbols[i]]; - } - } - } - } - - return to; - }; - - /** - * Copyright (c) 2013-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - - var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; - - var ReactPropTypesSecret_1 = ReactPropTypesSecret; - - var printWarning = function() {}; - - { - var ReactPropTypesSecret$1 = ReactPropTypesSecret_1; - var loggedTypeFailures = {}; - var has = Function.call.bind(Object.prototype.hasOwnProperty); - - printWarning = function(text) { - var message = 'Warning: ' + text; - if (typeof console !== 'undefined') { - console.error(message); - } - try { - // --- Welcome to debugging React --- - // This error was thrown as a convenience so that you can use this stack - // to find the callsite that caused this warning to fire. - throw new Error(message); - } catch (x) {} - }; - } - - /** - * Assert that the values match with the type specs. - * Error messages are memorized and will only be shown once. - * - * @param {object} typeSpecs Map of name to a ReactPropType - * @param {object} values Runtime values that need to be type-checked - * @param {string} location e.g. "prop", "context", "child context" - * @param {string} componentName Name of the component for error messages. - * @param {?Function} getStack Returns the component stack. - * @private - */ - function checkPropTypes(typeSpecs, values, location, componentName, getStack) { - { - for (var typeSpecName in typeSpecs) { - if (has(typeSpecs, typeSpecName)) { - var error; - // Prop type validation may throw. In case they do, we don't want to - // fail the render phase where it didn't fail before. So we log it. - // After these have been cleaned up, we'll let them throw. - try { - // This is intentionally an invariant that gets caught. It's the same - // behavior as without this statement except with a better message. - if (typeof typeSpecs[typeSpecName] !== 'function') { - var err = Error( - (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + - 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' - ); - err.name = 'Invariant Violation'; - throw err; - } - error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret$1); - } catch (ex) { - error = ex; - } - if (error && !(error instanceof Error)) { - printWarning( - (componentName || 'React class') + ': type specification of ' + - location + ' `' + typeSpecName + '` is invalid; the type checker ' + - 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' + - 'You may have forgotten to pass an argument to the type checker ' + - 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + - 'shape all require an argument).' - ); - } - if (error instanceof Error && !(error.message in loggedTypeFailures)) { - // Only monitor this failure once because there tends to be a lot of the - // same error. - loggedTypeFailures[error.message] = true; - - var stack = getStack ? getStack() : ''; - - printWarning( - 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '') - ); - } - } - } - } - } - - /** - * Resets warning cache when testing. - * - * @private - */ - checkPropTypes.resetWarningCache = function() { - { - loggedTypeFailures = {}; - } - }; - - var checkPropTypes_1 = checkPropTypes; - - var has$1 = Function.call.bind(Object.prototype.hasOwnProperty); - var printWarning$1 = function() {}; - - { - printWarning$1 = function(text) { - var message = 'Warning: ' + text; - if (typeof console !== 'undefined') { - console.error(message); - } - try { - // --- Welcome to debugging React --- - // This error was thrown as a convenience so that you can use this stack - // to find the callsite that caused this warning to fire. - throw new Error(message); - } catch (x) {} - }; - } - - function emptyFunctionThatReturnsNull() { - return null; - } - - var factoryWithTypeCheckers = function(isValidElement, throwOnDirectAccess) { - /* global Symbol */ - var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; - var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec. - - /** - * Returns the iterator method function contained on the iterable object. - * - * Be sure to invoke the function with the iterable as context: - * - * var iteratorFn = getIteratorFn(myIterable); - * if (iteratorFn) { - * var iterator = iteratorFn.call(myIterable); - * ... - * } - * - * @param {?object} maybeIterable - * @return {?function} - */ - function getIteratorFn(maybeIterable) { - var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]); - if (typeof iteratorFn === 'function') { - return iteratorFn; - } - } - - /** - * Collection of methods that allow declaration and validation of props that are - * supplied to React components. Example usage: - * - * var Props = require('ReactPropTypes'); - * var MyArticle = React.createClass({ - * propTypes: { - * // An optional string prop named "description". - * description: Props.string, - * - * // A required enum prop named "category". - * category: Props.oneOf(['News','Photos']).isRequired, - * - * // A prop named "dialog" that requires an instance of Dialog. - * dialog: Props.instanceOf(Dialog).isRequired - * }, - * render: function() { ... } - * }); - * - * A more formal specification of how these methods are used: - * - * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...) - * decl := ReactPropTypes.{type}(.isRequired)? - * - * Each and every declaration produces a function with the same signature. This - * allows the creation of custom validation functions. For example: - * - * var MyLink = React.createClass({ - * propTypes: { - * // An optional string or URI prop named "href". - * href: function(props, propName, componentName) { - * var propValue = props[propName]; - * if (propValue != null && typeof propValue !== 'string' && - * !(propValue instanceof URI)) { - * return new Error( - * 'Expected a string or an URI for ' + propName + ' in ' + - * componentName - * ); - * } - * } - * }, - * render: function() {...} - * }); - * - * @internal - */ - - var ANONYMOUS = '<>'; - - // Important! - // Keep this list in sync with production version in `./factoryWithThrowingShims.js`. - var ReactPropTypes = { - array: createPrimitiveTypeChecker('array'), - bool: createPrimitiveTypeChecker('boolean'), - func: createPrimitiveTypeChecker('function'), - number: createPrimitiveTypeChecker('number'), - object: createPrimitiveTypeChecker('object'), - string: createPrimitiveTypeChecker('string'), - symbol: createPrimitiveTypeChecker('symbol'), - - any: createAnyTypeChecker(), - arrayOf: createArrayOfTypeChecker, - element: createElementTypeChecker(), - elementType: createElementTypeTypeChecker(), - instanceOf: createInstanceTypeChecker, - node: createNodeChecker(), - objectOf: createObjectOfTypeChecker, - oneOf: createEnumTypeChecker, - oneOfType: createUnionTypeChecker, - shape: createShapeTypeChecker, - exact: createStrictShapeTypeChecker, - }; - - /** - * inlined Object.is polyfill to avoid requiring consumers ship their own - * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is - */ - /*eslint-disable no-self-compare*/ - function is(x, y) { - // SameValue algorithm - if (x === y) { - // Steps 1-5, 7-10 - // Steps 6.b-6.e: +0 != -0 - return x !== 0 || 1 / x === 1 / y; - } else { - // Step 6.a: NaN == NaN - return x !== x && y !== y; - } - } - /*eslint-enable no-self-compare*/ - - /** - * We use an Error-like object for backward compatibility as people may call - * PropTypes directly and inspect their output. However, we don't use real - * Errors anymore. We don't inspect their stack anyway, and creating them - * is prohibitively expensive if they are created too often, such as what - * happens in oneOfType() for any type before the one that matched. - */ - function PropTypeError(message) { - this.message = message; - this.stack = ''; - } - // Make `instanceof Error` still work for returned errors. - PropTypeError.prototype = Error.prototype; - - function createChainableTypeChecker(validate) { - { - var manualPropTypeCallCache = {}; - var manualPropTypeWarningCount = 0; - } - function checkType(isRequired, props, propName, componentName, location, propFullName, secret) { - componentName = componentName || ANONYMOUS; - propFullName = propFullName || propName; - - if (secret !== ReactPropTypesSecret_1) { - if (throwOnDirectAccess) { - // New behavior only for users of `prop-types` package - var err = new Error( - 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + - 'Use `PropTypes.checkPropTypes()` to call them. ' + - 'Read more at http://fb.me/use-check-prop-types' - ); - err.name = 'Invariant Violation'; - throw err; - } else if ( typeof console !== 'undefined') { - // Old behavior for people using React.PropTypes - var cacheKey = componentName + ':' + propName; - if ( - !manualPropTypeCallCache[cacheKey] && - // Avoid spamming the console because they are often not actionable except for lib authors - manualPropTypeWarningCount < 3 - ) { - printWarning$1( - 'You are manually calling a React.PropTypes validation ' + - 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' + - 'and will throw in the standalone `prop-types` package. ' + - 'You may be seeing this warning due to a third-party PropTypes ' + - 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.' - ); - manualPropTypeCallCache[cacheKey] = true; - manualPropTypeWarningCount++; - } - } - } - if (props[propName] == null) { - if (isRequired) { - if (props[propName] === null) { - return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.')); - } - return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.')); - } - return null; - } else { - return validate(props, propName, componentName, location, propFullName); - } - } - - var chainedCheckType = checkType.bind(null, false); - chainedCheckType.isRequired = checkType.bind(null, true); - - return chainedCheckType; - } - - function createPrimitiveTypeChecker(expectedType) { - function validate(props, propName, componentName, location, propFullName, secret) { - var propValue = props[propName]; - var propType = getPropType(propValue); - if (propType !== expectedType) { - // `propValue` being instance of, say, date/regexp, pass the 'object' - // check, but we can offer a more precise error message here rather than - // 'of type `object`'. - var preciseType = getPreciseType(propValue); - - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.')); - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createAnyTypeChecker() { - return createChainableTypeChecker(emptyFunctionThatReturnsNull); - } - - function createArrayOfTypeChecker(typeChecker) { - function validate(props, propName, componentName, location, propFullName) { - if (typeof typeChecker !== 'function') { - return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.'); - } - var propValue = props[propName]; - if (!Array.isArray(propValue)) { - var propType = getPropType(propValue); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.')); - } - for (var i = 0; i < propValue.length; i++) { - var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret_1); - if (error instanceof Error) { - return error; - } - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createElementTypeChecker() { - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - if (!isValidElement(propValue)) { - var propType = getPropType(propValue); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.')); - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createElementTypeTypeChecker() { - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - if (!reactIs.isValidElementType(propValue)) { - var propType = getPropType(propValue); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.')); - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createInstanceTypeChecker(expectedClass) { - function validate(props, propName, componentName, location, propFullName) { - if (!(props[propName] instanceof expectedClass)) { - var expectedClassName = expectedClass.name || ANONYMOUS; - var actualClassName = getClassName(props[propName]); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.')); - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createEnumTypeChecker(expectedValues) { - if (!Array.isArray(expectedValues)) { - { - if (arguments.length > 1) { - printWarning$1( - 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' + - 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).' - ); - } else { - printWarning$1('Invalid argument supplied to oneOf, expected an array.'); - } - } - return emptyFunctionThatReturnsNull; - } - - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - for (var i = 0; i < expectedValues.length; i++) { - if (is(propValue, expectedValues[i])) { - return null; - } - } - - var valuesString = JSON.stringify(expectedValues, function replacer(key, value) { - var type = getPreciseType(value); - if (type === 'symbol') { - return String(value); - } - return value; - }); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.')); - } - return createChainableTypeChecker(validate); - } - - function createObjectOfTypeChecker(typeChecker) { - function validate(props, propName, componentName, location, propFullName) { - if (typeof typeChecker !== 'function') { - return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.'); - } - var propValue = props[propName]; - var propType = getPropType(propValue); - if (propType !== 'object') { - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.')); - } - for (var key in propValue) { - if (has$1(propValue, key)) { - var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret_1); - if (error instanceof Error) { - return error; - } - } - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createUnionTypeChecker(arrayOfTypeCheckers) { - if (!Array.isArray(arrayOfTypeCheckers)) { - printWarning$1('Invalid argument supplied to oneOfType, expected an instance of array.') ; - return emptyFunctionThatReturnsNull; - } - - for (var i = 0; i < arrayOfTypeCheckers.length; i++) { - var checker = arrayOfTypeCheckers[i]; - if (typeof checker !== 'function') { - printWarning$1( - 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' + - 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.' - ); - return emptyFunctionThatReturnsNull; - } - } - - function validate(props, propName, componentName, location, propFullName) { - for (var i = 0; i < arrayOfTypeCheckers.length; i++) { - var checker = arrayOfTypeCheckers[i]; - if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret_1) == null) { - return null; - } - } - - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.')); - } - return createChainableTypeChecker(validate); - } - - function createNodeChecker() { - function validate(props, propName, componentName, location, propFullName) { - if (!isNode(props[propName])) { - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.')); - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createShapeTypeChecker(shapeTypes) { - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - var propType = getPropType(propValue); - if (propType !== 'object') { - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); - } - for (var key in shapeTypes) { - var checker = shapeTypes[key]; - if (!checker) { - continue; - } - var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret_1); - if (error) { - return error; - } - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createStrictShapeTypeChecker(shapeTypes) { - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - var propType = getPropType(propValue); - if (propType !== 'object') { - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); - } - // We need to check all keys in case some are required but missing from - // props. - var allKeys = objectAssign({}, props[propName], shapeTypes); - for (var key in allKeys) { - var checker = shapeTypes[key]; - if (!checker) { - return new PropTypeError( - 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' + - '\nBad object: ' + JSON.stringify(props[propName], null, ' ') + - '\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ') - ); - } - var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret_1); - if (error) { - return error; - } - } - return null; - } - - return createChainableTypeChecker(validate); - } - - function isNode(propValue) { - switch (typeof propValue) { - case 'number': - case 'string': - case 'undefined': - return true; - case 'boolean': - return !propValue; - case 'object': - if (Array.isArray(propValue)) { - return propValue.every(isNode); - } - if (propValue === null || isValidElement(propValue)) { - return true; - } - - var iteratorFn = getIteratorFn(propValue); - if (iteratorFn) { - var iterator = iteratorFn.call(propValue); - var step; - if (iteratorFn !== propValue.entries) { - while (!(step = iterator.next()).done) { - if (!isNode(step.value)) { - return false; - } - } - } else { - // Iterator will provide entry [k,v] tuples rather than values. - while (!(step = iterator.next()).done) { - var entry = step.value; - if (entry) { - if (!isNode(entry[1])) { - return false; - } - } - } - } - } else { - return false; - } - - return true; - default: - return false; - } - } - - function isSymbol(propType, propValue) { - // Native Symbol. - if (propType === 'symbol') { - return true; - } - - // falsy value can't be a Symbol - if (!propValue) { - return false; - } - - // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol' - if (propValue['@@toStringTag'] === 'Symbol') { - return true; - } - - // Fallback for non-spec compliant Symbols which are polyfilled. - if (typeof Symbol === 'function' && propValue instanceof Symbol) { - return true; - } - - return false; - } - - // Equivalent of `typeof` but with special handling for array and regexp. - function getPropType(propValue) { - var propType = typeof propValue; - if (Array.isArray(propValue)) { - return 'array'; - } - if (propValue instanceof RegExp) { - // Old webkits (at least until Android 4.0) return 'function' rather than - // 'object' for typeof a RegExp. We'll normalize this here so that /bla/ - // passes PropTypes.object. - return 'object'; - } - if (isSymbol(propType, propValue)) { - return 'symbol'; - } - return propType; - } - - // This handles more types than `getPropType`. Only used for error messages. - // See `createPrimitiveTypeChecker`. - function getPreciseType(propValue) { - if (typeof propValue === 'undefined' || propValue === null) { - return '' + propValue; - } - var propType = getPropType(propValue); - if (propType === 'object') { - if (propValue instanceof Date) { - return 'date'; - } else if (propValue instanceof RegExp) { - return 'regexp'; - } - } - return propType; - } - - // Returns a string that is postfixed to a warning about an invalid type. - // For example, "undefined" or "of type array" - function getPostfixForTypeWarning(value) { - var type = getPreciseType(value); - switch (type) { - case 'array': - case 'object': - return 'an ' + type; - case 'boolean': - case 'date': - case 'regexp': - return 'a ' + type; - default: - return type; - } - } - - // Returns class name of the object, if any. - function getClassName(propValue) { - if (!propValue.constructor || !propValue.constructor.name) { - return ANONYMOUS; - } - return propValue.constructor.name; - } - - ReactPropTypes.checkPropTypes = checkPropTypes_1; - ReactPropTypes.resetWarningCache = checkPropTypes_1.resetWarningCache; - ReactPropTypes.PropTypes = ReactPropTypes; - - return ReactPropTypes; - }; - - var propTypes = createCommonjsModule(function (module) { - /** - * Copyright (c) 2013-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - - { - var ReactIs = reactIs; - - // By explicitly using `prop-types` you are opting into new development behavior. - // http://fb.me/prop-types-in-prod - var throwOnDirectAccess = true; - module.exports = factoryWithTypeCheckers(ReactIs.isElement, throwOnDirectAccess); - } - }); - - function _extends() { - _extends = Object.assign || function (target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i]; - - for (var key in source) { - if (Object.prototype.hasOwnProperty.call(source, key)) { - target[key] = source[key]; - } - } - } - - return target; - }; - - return _extends.apply(this, arguments); - } - - function isAbsolute(pathname) { - return pathname.charAt(0) === '/'; - } - - // About 1.5x faster than the two-arg version of Array#splice() - function spliceOne(list, index) { - for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) { - list[i] = list[k]; - } - - list.pop(); - } - - // This implementation is based heavily on node's url.parse - function resolvePathname(to) { - var from = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; - - var toParts = to && to.split('/') || []; - var fromParts = from && from.split('/') || []; - - var isToAbs = to && isAbsolute(to); - var isFromAbs = from && isAbsolute(from); - var mustEndAbs = isToAbs || isFromAbs; - - if (to && isAbsolute(to)) { - // to is absolute - fromParts = toParts; - } else if (toParts.length) { - // to is relative, drop the filename - fromParts.pop(); - fromParts = fromParts.concat(toParts); - } - - if (!fromParts.length) return '/'; - - var hasTrailingSlash = void 0; - if (fromParts.length) { - var last = fromParts[fromParts.length - 1]; - hasTrailingSlash = last === '.' || last === '..' || last === ''; - } else { - hasTrailingSlash = false; - } - - var up = 0; - for (var i = fromParts.length; i >= 0; i--) { - var part = fromParts[i]; - - if (part === '.') { - spliceOne(fromParts, i); - } else if (part === '..') { - spliceOne(fromParts, i); - up++; - } else if (up) { - spliceOne(fromParts, i); - up--; - } - } - - if (!mustEndAbs) for (; up--; up) { - fromParts.unshift('..'); - }if (mustEndAbs && fromParts[0] !== '' && (!fromParts[0] || !isAbsolute(fromParts[0]))) fromParts.unshift(''); - - var result = fromParts.join('/'); - - if (hasTrailingSlash && result.substr(-1) !== '/') result += '/'; - - return result; - } - - var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; - - function valueEqual(a, b) { - if (a === b) return true; - - if (a == null || b == null) return false; - - if (Array.isArray(a)) { - return Array.isArray(b) && a.length === b.length && a.every(function (item, index) { - return valueEqual(item, b[index]); - }); - } - - var aType = typeof a === 'undefined' ? 'undefined' : _typeof(a); - var bType = typeof b === 'undefined' ? 'undefined' : _typeof(b); - - if (aType !== bType) return false; - - if (aType === 'object') { - var aValue = a.valueOf(); - var bValue = b.valueOf(); - - if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue); - - var aKeys = Object.keys(a); - var bKeys = Object.keys(b); - - if (aKeys.length !== bKeys.length) return false; - - return aKeys.every(function (key) { - return valueEqual(a[key], b[key]); - }); - } - - return false; - } - - function warning(condition, message) { - { - if (condition) { - return; - } - - var text = "Warning: " + message; - - if (typeof console !== 'undefined') { - console.warn(text); - } - - try { - throw Error(text); - } catch (x) {} - } - } - - var prefix = 'Invariant failed'; - function invariant(condition, message) { - if (condition) { - return; - } - - { - throw new Error(prefix + ": " + (message || '')); - } - } - - function addLeadingSlash(path) { - return path.charAt(0) === '/' ? path : '/' + path; - } - function stripLeadingSlash(path) { - return path.charAt(0) === '/' ? path.substr(1) : path; - } - function hasBasename(path, prefix) { - return new RegExp('^' + prefix + '(\\/|\\?|#|$)', 'i').test(path); - } - function stripBasename(path, prefix) { - return hasBasename(path, prefix) ? path.substr(prefix.length) : path; - } - function stripTrailingSlash(path) { - return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path; - } - function parsePath(path) { - var pathname = path || '/'; - var search = ''; - var hash = ''; - var hashIndex = pathname.indexOf('#'); - - if (hashIndex !== -1) { - hash = pathname.substr(hashIndex); - pathname = pathname.substr(0, hashIndex); - } - - var searchIndex = pathname.indexOf('?'); - - if (searchIndex !== -1) { - search = pathname.substr(searchIndex); - pathname = pathname.substr(0, searchIndex); - } - - return { - pathname: pathname, - search: search === '?' ? '' : search, - hash: hash === '#' ? '' : hash - }; - } - function createPath(location) { - var pathname = location.pathname, - search = location.search, - hash = location.hash; - var path = pathname || '/'; - if (search && search !== '?') path += search.charAt(0) === '?' ? search : "?" + search; - if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : "#" + hash; - return path; - } - - function createLocation(path, state, key, currentLocation) { - var location; - - if (typeof path === 'string') { - // Two-arg form: push(path, state) - location = parsePath(path); - location.state = state; - } else { - // One-arg form: push(location) - location = _extends({}, path); - if (location.pathname === undefined) location.pathname = ''; - - if (location.search) { - if (location.search.charAt(0) !== '?') location.search = '?' + location.search; - } else { - location.search = ''; - } - - if (location.hash) { - if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash; - } else { - location.hash = ''; - } - - if (state !== undefined && location.state === undefined) location.state = state; - } - - try { - location.pathname = decodeURI(location.pathname); - } catch (e) { - if (e instanceof URIError) { - throw new URIError('Pathname "' + location.pathname + '" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.'); - } else { - throw e; - } - } - - if (key) location.key = key; - - if (currentLocation) { - // Resolve incomplete/relative pathname relative to current location. - if (!location.pathname) { - location.pathname = currentLocation.pathname; - } else if (location.pathname.charAt(0) !== '/') { - location.pathname = resolvePathname(location.pathname, currentLocation.pathname); - } - } else { - // When there is no prior location and pathname is empty, set it to / - if (!location.pathname) { - location.pathname = '/'; - } - } - - return location; - } - function locationsAreEqual(a, b) { - return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state); - } - - function createTransitionManager() { - var prompt = null; - - function setPrompt(nextPrompt) { - warning(prompt == null, 'A history supports only one prompt at a time') ; - prompt = nextPrompt; - return function () { - if (prompt === nextPrompt) prompt = null; - }; - } - - function confirmTransitionTo(location, action, getUserConfirmation, callback) { - // TODO: If another transition starts while we're still confirming - // the previous one, we may end up in a weird state. Figure out the - // best way to handle this. - if (prompt != null) { - var result = typeof prompt === 'function' ? prompt(location, action) : prompt; - - if (typeof result === 'string') { - if (typeof getUserConfirmation === 'function') { - getUserConfirmation(result, callback); - } else { - warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') ; - callback(true); - } - } else { - // Return false from a transition hook to cancel the transition. - callback(result !== false); - } - } else { - callback(true); - } - } - - var listeners = []; - - function appendListener(fn) { - var isActive = true; - - function listener() { - if (isActive) fn.apply(void 0, arguments); - } - - listeners.push(listener); - return function () { - isActive = false; - listeners = listeners.filter(function (item) { - return item !== listener; - }); - }; - } - - function notifyListeners() { - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - listeners.forEach(function (listener) { - return listener.apply(void 0, args); - }); - } - - return { - setPrompt: setPrompt, - confirmTransitionTo: confirmTransitionTo, - appendListener: appendListener, - notifyListeners: notifyListeners - }; - } - - var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement); - function getConfirmation(message, callback) { - callback(window.confirm(message)); // eslint-disable-line no-alert - } - /** - * Returns true if the HTML5 history API is supported. Taken from Modernizr. - * - * https://github.com/Modernizr/Modernizr/blob/master/LICENSE - * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js - * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586 - */ - - function supportsHistory() { - var ua = window.navigator.userAgent; - if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false; - return window.history && 'pushState' in window.history; - } - /** - * Returns true if browser fires popstate on hash change. - * IE10 and IE11 do not. - */ - - function supportsPopStateOnHashChange() { - return window.navigator.userAgent.indexOf('Trident') === -1; - } - /** - * Returns false if using go(n) with hash history causes a full page reload. - */ - - function supportsGoWithoutReloadUsingHash() { - return window.navigator.userAgent.indexOf('Firefox') === -1; - } - /** - * Returns true if a given popstate event is an extraneous WebKit event. - * Accounts for the fact that Chrome on iOS fires real popstate events - * containing undefined state when pressing the back button. - */ - - function isExtraneousPopstateEvent(event) { - event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1; - } - - var PopStateEvent = 'popstate'; - var HashChangeEvent = 'hashchange'; - - function getHistoryState() { - try { - return window.history.state || {}; - } catch (e) { - // IE 11 sometimes throws when accessing window.history.state - // See https://github.com/ReactTraining/history/pull/289 - return {}; - } - } - /** - * Creates a history object that uses the HTML5 history API including - * pushState, replaceState, and the popstate event. - */ - - - function createBrowserHistory(props) { - if (props === void 0) { - props = {}; - } - - !canUseDOM ? invariant(false, 'Browser history needs a DOM') : void 0; - var globalHistory = window.history; - var canUseHistory = supportsHistory(); - var needsHashChangeListener = !supportsPopStateOnHashChange(); - var _props = props, - _props$forceRefresh = _props.forceRefresh, - forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh, - _props$getUserConfirm = _props.getUserConfirmation, - getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm, - _props$keyLength = _props.keyLength, - keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength; - var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : ''; - - function getDOMLocation(historyState) { - var _ref = historyState || {}, - key = _ref.key, - state = _ref.state; - - var _window$location = window.location, - pathname = _window$location.pathname, - search = _window$location.search, - hash = _window$location.hash; - var path = pathname + search + hash; - warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path "' + path + '" to begin with "' + basename + '".') ; - if (basename) path = stripBasename(path, basename); - return createLocation(path, state, key); - } - - function createKey() { - return Math.random().toString(36).substr(2, keyLength); - } - - var transitionManager = createTransitionManager(); - - function setState(nextState) { - _extends(history, nextState); - - history.length = globalHistory.length; - transitionManager.notifyListeners(history.location, history.action); - } - - function handlePopState(event) { - // Ignore extraneous popstate events in WebKit. - if (isExtraneousPopstateEvent(event)) return; - handlePop(getDOMLocation(event.state)); - } - - function handleHashChange() { - handlePop(getDOMLocation(getHistoryState())); - } - - var forceNextPop = false; - - function handlePop(location) { - if (forceNextPop) { - forceNextPop = false; - setState(); - } else { - var action = 'POP'; - transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { - if (ok) { - setState({ - action: action, - location: location - }); - } else { - revertPop(location); - } - }); - } - } - - function revertPop(fromLocation) { - var toLocation = history.location; // TODO: We could probably make this more reliable by - // keeping a list of keys we've seen in sessionStorage. - // Instead, we just default to 0 for keys we don't know. - - var toIndex = allKeys.indexOf(toLocation.key); - if (toIndex === -1) toIndex = 0; - var fromIndex = allKeys.indexOf(fromLocation.key); - if (fromIndex === -1) fromIndex = 0; - var delta = toIndex - fromIndex; - - if (delta) { - forceNextPop = true; - go(delta); - } - } - - var initialLocation = getDOMLocation(getHistoryState()); - var allKeys = [initialLocation.key]; // Public interface - - function createHref(location) { - return basename + createPath(location); - } - - function push(path, state) { - warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') ; - var action = 'PUSH'; - var location = createLocation(path, state, createKey(), history.location); - transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { - if (!ok) return; - var href = createHref(location); - var key = location.key, - state = location.state; - - if (canUseHistory) { - globalHistory.pushState({ - key: key, - state: state - }, null, href); - - if (forceRefresh) { - window.location.href = href; - } else { - var prevIndex = allKeys.indexOf(history.location.key); - var nextKeys = allKeys.slice(0, prevIndex === -1 ? 0 : prevIndex + 1); - nextKeys.push(location.key); - allKeys = nextKeys; - setState({ - action: action, - location: location - }); - } - } else { - warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') ; - window.location.href = href; - } - }); - } - - function replace(path, state) { - warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') ; - var action = 'REPLACE'; - var location = createLocation(path, state, createKey(), history.location); - transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { - if (!ok) return; - var href = createHref(location); - var key = location.key, - state = location.state; - - if (canUseHistory) { - globalHistory.replaceState({ - key: key, - state: state - }, null, href); - - if (forceRefresh) { - window.location.replace(href); - } else { - var prevIndex = allKeys.indexOf(history.location.key); - if (prevIndex !== -1) allKeys[prevIndex] = location.key; - setState({ - action: action, - location: location - }); - } - } else { - warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') ; - window.location.replace(href); - } - }); - } - - function go(n) { - globalHistory.go(n); - } - - function goBack() { - go(-1); - } - - function goForward() { - go(1); - } - - var listenerCount = 0; - - function checkDOMListeners(delta) { - listenerCount += delta; - - if (listenerCount === 1 && delta === 1) { - window.addEventListener(PopStateEvent, handlePopState); - if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange); - } else if (listenerCount === 0) { - window.removeEventListener(PopStateEvent, handlePopState); - if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange); - } - } - - var isBlocked = false; - - function block(prompt) { - if (prompt === void 0) { - prompt = false; - } - - var unblock = transitionManager.setPrompt(prompt); - - if (!isBlocked) { - checkDOMListeners(1); - isBlocked = true; - } - - return function () { - if (isBlocked) { - isBlocked = false; - checkDOMListeners(-1); - } - - return unblock(); - }; - } - - function listen(listener) { - var unlisten = transitionManager.appendListener(listener); - checkDOMListeners(1); - return function () { - checkDOMListeners(-1); - unlisten(); - }; - } - - var history = { - length: globalHistory.length, - action: 'POP', - location: initialLocation, - createHref: createHref, - push: push, - replace: replace, - go: go, - goBack: goBack, - goForward: goForward, - block: block, - listen: listen - }; - return history; - } - - var HashChangeEvent$1 = 'hashchange'; - var HashPathCoders = { - hashbang: { - encodePath: function encodePath(path) { - return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path); - }, - decodePath: function decodePath(path) { - return path.charAt(0) === '!' ? path.substr(1) : path; - } - }, - noslash: { - encodePath: stripLeadingSlash, - decodePath: addLeadingSlash - }, - slash: { - encodePath: addLeadingSlash, - decodePath: addLeadingSlash - } - }; - - function getHashPath() { - // We can't use window.location.hash here because it's not - // consistent across browsers - Firefox will pre-decode it! - var href = window.location.href; - var hashIndex = href.indexOf('#'); - return hashIndex === -1 ? '' : href.substring(hashIndex + 1); - } - - function pushHashPath(path) { - window.location.hash = path; - } - - function replaceHashPath(path) { - var hashIndex = window.location.href.indexOf('#'); - window.location.replace(window.location.href.slice(0, hashIndex >= 0 ? hashIndex : 0) + '#' + path); - } - - function createHashHistory(props) { - if (props === void 0) { - props = {}; - } - - !canUseDOM ? invariant(false, 'Hash history needs a DOM') : void 0; - var globalHistory = window.history; - var canGoWithoutReload = supportsGoWithoutReloadUsingHash(); - var _props = props, - _props$getUserConfirm = _props.getUserConfirmation, - getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm, - _props$hashType = _props.hashType, - hashType = _props$hashType === void 0 ? 'slash' : _props$hashType; - var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : ''; - var _HashPathCoders$hashT = HashPathCoders[hashType], - encodePath = _HashPathCoders$hashT.encodePath, - decodePath = _HashPathCoders$hashT.decodePath; - - function getDOMLocation() { - var path = decodePath(getHashPath()); - warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path "' + path + '" to begin with "' + basename + '".') ; - if (basename) path = stripBasename(path, basename); - return createLocation(path); - } - - var transitionManager = createTransitionManager(); - - function setState(nextState) { - _extends(history, nextState); - - history.length = globalHistory.length; - transitionManager.notifyListeners(history.location, history.action); - } - - var forceNextPop = false; - var ignorePath = null; - - function handleHashChange() { - var path = getHashPath(); - var encodedPath = encodePath(path); - - if (path !== encodedPath) { - // Ensure we always have a properly-encoded hash. - replaceHashPath(encodedPath); - } else { - var location = getDOMLocation(); - var prevLocation = history.location; - if (!forceNextPop && locationsAreEqual(prevLocation, location)) return; // A hashchange doesn't always == location change. - - if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace. - - ignorePath = null; - handlePop(location); - } - } - - function handlePop(location) { - if (forceNextPop) { - forceNextPop = false; - setState(); - } else { - var action = 'POP'; - transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { - if (ok) { - setState({ - action: action, - location: location - }); - } else { - revertPop(location); - } - }); - } - } - - function revertPop(fromLocation) { - var toLocation = history.location; // TODO: We could probably make this more reliable by - // keeping a list of paths we've seen in sessionStorage. - // Instead, we just default to 0 for paths we don't know. - - var toIndex = allPaths.lastIndexOf(createPath(toLocation)); - if (toIndex === -1) toIndex = 0; - var fromIndex = allPaths.lastIndexOf(createPath(fromLocation)); - if (fromIndex === -1) fromIndex = 0; - var delta = toIndex - fromIndex; - - if (delta) { - forceNextPop = true; - go(delta); - } - } // Ensure the hash is encoded properly before doing anything else. - - - var path = getHashPath(); - var encodedPath = encodePath(path); - if (path !== encodedPath) replaceHashPath(encodedPath); - var initialLocation = getDOMLocation(); - var allPaths = [createPath(initialLocation)]; // Public interface - - function createHref(location) { - return '#' + encodePath(basename + createPath(location)); - } - - function push(path, state) { - warning(state === undefined, 'Hash history cannot push state; it is ignored') ; - var action = 'PUSH'; - var location = createLocation(path, undefined, undefined, history.location); - transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { - if (!ok) return; - var path = createPath(location); - var encodedPath = encodePath(basename + path); - var hashChanged = getHashPath() !== encodedPath; - - if (hashChanged) { - // We cannot tell if a hashchange was caused by a PUSH, so we'd - // rather setState here and ignore the hashchange. The caveat here - // is that other hash histories in the page will consider it a POP. - ignorePath = path; - pushHashPath(encodedPath); - var prevIndex = allPaths.lastIndexOf(createPath(history.location)); - var nextPaths = allPaths.slice(0, prevIndex === -1 ? 0 : prevIndex + 1); - nextPaths.push(path); - allPaths = nextPaths; - setState({ - action: action, - location: location - }); - } else { - warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') ; - setState(); - } - }); - } - - function replace(path, state) { - warning(state === undefined, 'Hash history cannot replace state; it is ignored') ; - var action = 'REPLACE'; - var location = createLocation(path, undefined, undefined, history.location); - transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { - if (!ok) return; - var path = createPath(location); - var encodedPath = encodePath(basename + path); - var hashChanged = getHashPath() !== encodedPath; - - if (hashChanged) { - // We cannot tell if a hashchange was caused by a REPLACE, so we'd - // rather setState here and ignore the hashchange. The caveat here - // is that other hash histories in the page will consider it a POP. - ignorePath = path; - replaceHashPath(encodedPath); - } - - var prevIndex = allPaths.indexOf(createPath(history.location)); - if (prevIndex !== -1) allPaths[prevIndex] = path; - setState({ - action: action, - location: location - }); - }); - } - - function go(n) { - warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') ; - globalHistory.go(n); - } - - function goBack() { - go(-1); - } - - function goForward() { - go(1); - } - - var listenerCount = 0; - - function checkDOMListeners(delta) { - listenerCount += delta; - - if (listenerCount === 1 && delta === 1) { - window.addEventListener(HashChangeEvent$1, handleHashChange); - } else if (listenerCount === 0) { - window.removeEventListener(HashChangeEvent$1, handleHashChange); - } - } - - var isBlocked = false; - - function block(prompt) { - if (prompt === void 0) { - prompt = false; - } - - var unblock = transitionManager.setPrompt(prompt); - - if (!isBlocked) { - checkDOMListeners(1); - isBlocked = true; - } - - return function () { - if (isBlocked) { - isBlocked = false; - checkDOMListeners(-1); - } - - return unblock(); - }; - } - - function listen(listener) { - var unlisten = transitionManager.appendListener(listener); - checkDOMListeners(1); - return function () { - checkDOMListeners(-1); - unlisten(); - }; - } - - var history = { - length: globalHistory.length, - action: 'POP', - location: initialLocation, - createHref: createHref, - push: push, - replace: replace, - go: go, - goBack: goBack, - goForward: goForward, - block: block, - listen: listen - }; - return history; - } - - function clamp(n, lowerBound, upperBound) { - return Math.min(Math.max(n, lowerBound), upperBound); - } - /** - * Creates a history object that stores locations in memory. - */ - - - function createMemoryHistory(props) { - if (props === void 0) { - props = {}; - } - - var _props = props, - getUserConfirmation = _props.getUserConfirmation, - _props$initialEntries = _props.initialEntries, - initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries, - _props$initialIndex = _props.initialIndex, - initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex, - _props$keyLength = _props.keyLength, - keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength; - var transitionManager = createTransitionManager(); - - function setState(nextState) { - _extends(history, nextState); - - history.length = history.entries.length; - transitionManager.notifyListeners(history.location, history.action); - } - - function createKey() { - return Math.random().toString(36).substr(2, keyLength); - } - - var index = clamp(initialIndex, 0, initialEntries.length - 1); - var entries = initialEntries.map(function (entry) { - return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey()); - }); // Public interface - - var createHref = createPath; - - function push(path, state) { - warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') ; - var action = 'PUSH'; - var location = createLocation(path, state, createKey(), history.location); - transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { - if (!ok) return; - var prevIndex = history.index; - var nextIndex = prevIndex + 1; - var nextEntries = history.entries.slice(0); - - if (nextEntries.length > nextIndex) { - nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location); - } else { - nextEntries.push(location); - } - - setState({ - action: action, - location: location, - index: nextIndex, - entries: nextEntries - }); - }); - } - - function replace(path, state) { - warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') ; - var action = 'REPLACE'; - var location = createLocation(path, state, createKey(), history.location); - transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { - if (!ok) return; - history.entries[history.index] = location; - setState({ - action: action, - location: location - }); - }); - } - - function go(n) { - var nextIndex = clamp(history.index + n, 0, history.entries.length - 1); - var action = 'POP'; - var location = history.entries[nextIndex]; - transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { - if (ok) { - setState({ - action: action, - location: location, - index: nextIndex - }); - } else { - // Mimic the behavior of DOM histories by - // causing a render after a cancelled POP. - setState(); - } - }); - } - - function goBack() { - go(-1); - } - - function goForward() { - go(1); - } - - function canGo(n) { - var nextIndex = history.index + n; - return nextIndex >= 0 && nextIndex < history.entries.length; - } - - function block(prompt) { - if (prompt === void 0) { - prompt = false; - } - - return transitionManager.setPrompt(prompt); - } - - function listen(listener) { - return transitionManager.appendListener(listener); - } - - var history = { - length: entries.length, - action: 'POP', - location: entries[index], - index: index, - entries: entries, - createHref: createHref, - push: push, - replace: replace, - go: go, - goBack: goBack, - goForward: goForward, - canGo: canGo, - block: block, - listen: listen - }; - return history; - } - - function _inheritsLoose$1(subClass, superClass) { - subClass.prototype = Object.create(superClass.prototype); - subClass.prototype.constructor = subClass; - subClass.__proto__ = superClass; - } - - var MAX_SIGNED_31_BIT_INT = 1073741823; - var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {}; - - function getUniqueId() { - var key = '__global_unique_id__'; - return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1; - } - - function objectIs(x, y) { - if (x === y) { - return x !== 0 || 1 / x === 1 / y; - } else { - return x !== x && y !== y; - } - } - - function createEventEmitter(value) { - var handlers = []; - return { - on: function on(handler) { - handlers.push(handler); - }, - off: function off(handler) { - handlers = handlers.filter(function (h) { - return h !== handler; - }); - }, - get: function get() { - return value; - }, - set: function set(newValue, changedBits) { - value = newValue; - handlers.forEach(function (handler) { - return handler(value, changedBits); - }); - } - }; - } - - function onlyChild(children) { - return Array.isArray(children) ? children[0] : children; - } - - function createReactContext(defaultValue, calculateChangedBits) { - var _Provider$childContex, _Consumer$contextType; - - var contextProp = '__create-react-context-' + getUniqueId() + '__'; - - var Provider = /*#__PURE__*/function (_Component) { - _inheritsLoose$1(Provider, _Component); - - function Provider() { - var _this; - - _this = _Component.apply(this, arguments) || this; - _this.emitter = createEventEmitter(_this.props.value); - return _this; - } - - var _proto = Provider.prototype; - - _proto.getChildContext = function getChildContext() { - var _ref; - - return _ref = {}, _ref[contextProp] = this.emitter, _ref; - }; - - _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { - if (this.props.value !== nextProps.value) { - var oldValue = this.props.value; - var newValue = nextProps.value; - var changedBits; - - if (objectIs(oldValue, newValue)) { - changedBits = 0; - } else { - changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT; - - { - warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: ' + changedBits); - } - - changedBits |= 0; - - if (changedBits !== 0) { - this.emitter.set(nextProps.value, changedBits); - } - } - } - }; - - _proto.render = function render() { - return this.props.children; - }; - - return Provider; - }(React.Component); - - Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = propTypes.object.isRequired, _Provider$childContex); - - var Consumer = /*#__PURE__*/function (_Component2) { - _inheritsLoose$1(Consumer, _Component2); - - function Consumer() { - var _this2; - - _this2 = _Component2.apply(this, arguments) || this; - _this2.state = { - value: _this2.getValue() - }; - - _this2.onUpdate = function (newValue, changedBits) { - var observedBits = _this2.observedBits | 0; - - if ((observedBits & changedBits) !== 0) { - _this2.setState({ - value: _this2.getValue() - }); - } - }; - - return _this2; - } - - var _proto2 = Consumer.prototype; - - _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { - var observedBits = nextProps.observedBits; - this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits; - }; - - _proto2.componentDidMount = function componentDidMount() { - if (this.context[contextProp]) { - this.context[contextProp].on(this.onUpdate); - } - - var observedBits = this.props.observedBits; - this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits; - }; - - _proto2.componentWillUnmount = function componentWillUnmount() { - if (this.context[contextProp]) { - this.context[contextProp].off(this.onUpdate); - } - }; - - _proto2.getValue = function getValue() { - if (this.context[contextProp]) { - return this.context[contextProp].get(); - } else { - return defaultValue; - } - }; - - _proto2.render = function render() { - return onlyChild(this.props.children)(this.state.value); - }; - - return Consumer; - }(React.Component); - - Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = propTypes.object, _Consumer$contextType); - return { - Provider: Provider, - Consumer: Consumer - }; - } - - var index = React__default.createContext || createReactContext; - - var isarray = Array.isArray || function (arr) { - return Object.prototype.toString.call(arr) == '[object Array]'; - }; - - /** - * Expose `pathToRegexp`. - */ - var pathToRegexp_1 = pathToRegexp; - var parse_1 = parse; - var compile_1 = compile; - var tokensToFunction_1 = tokensToFunction; - var tokensToRegExp_1 = tokensToRegExp; - - /** - * The main path matching regexp utility. - * - * @type {RegExp} - */ - var PATH_REGEXP = new RegExp([ - // Match escaped characters that would otherwise appear in future matches. - // This allows the user to escape special characters that won't transform. - '(\\\\.)', - // Match Express-style parameters and un-named parameters with a prefix - // and optional suffixes. Matches appear as: - // - // "/:test(\\d+)?" => ["/", "test", "\d+", undefined, "?", undefined] - // "/route(\\d+)" => [undefined, undefined, undefined, "\d+", undefined, undefined] - // "/*" => ["/", undefined, undefined, undefined, undefined, "*"] - '([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))' - ].join('|'), 'g'); - - /** - * Parse a string for the raw tokens. - * - * @param {string} str - * @param {Object=} options - * @return {!Array} - */ - function parse (str, options) { - var tokens = []; - var key = 0; - var index = 0; - var path = ''; - var defaultDelimiter = options && options.delimiter || '/'; - var res; - - while ((res = PATH_REGEXP.exec(str)) != null) { - var m = res[0]; - var escaped = res[1]; - var offset = res.index; - path += str.slice(index, offset); - index = offset + m.length; - - // Ignore already escaped sequences. - if (escaped) { - path += escaped[1]; - continue - } - - var next = str[index]; - var prefix = res[2]; - var name = res[3]; - var capture = res[4]; - var group = res[5]; - var modifier = res[6]; - var asterisk = res[7]; - - // Push the current path onto the tokens. - if (path) { - tokens.push(path); - path = ''; - } - - var partial = prefix != null && next != null && next !== prefix; - var repeat = modifier === '+' || modifier === '*'; - var optional = modifier === '?' || modifier === '*'; - var delimiter = res[2] || defaultDelimiter; - var pattern = capture || group; - - tokens.push({ - name: name || key++, - prefix: prefix || '', - delimiter: delimiter, - optional: optional, - repeat: repeat, - partial: partial, - asterisk: !!asterisk, - pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?') - }); - } - - // Match any characters still remaining. - if (index < str.length) { - path += str.substr(index); - } - - // If the path exists, push it onto the end. - if (path) { - tokens.push(path); - } - - return tokens - } - - /** - * Compile a string to a template function for the path. - * - * @param {string} str - * @param {Object=} options - * @return {!function(Object=, Object=)} - */ - function compile (str, options) { - return tokensToFunction(parse(str, options)) - } - - /** - * Prettier encoding of URI path segments. - * - * @param {string} - * @return {string} - */ - function encodeURIComponentPretty (str) { - return encodeURI(str).replace(/[\/?#]/g, function (c) { - return '%' + c.charCodeAt(0).toString(16).toUpperCase() - }) - } - - /** - * Encode the asterisk parameter. Similar to `pretty`, but allows slashes. - * - * @param {string} - * @return {string} - */ - function encodeAsterisk (str) { - return encodeURI(str).replace(/[?#]/g, function (c) { - return '%' + c.charCodeAt(0).toString(16).toUpperCase() - }) - } - - /** - * Expose a method for transforming tokens into the path function. - */ - function tokensToFunction (tokens) { - // Compile all the tokens into regexps. - var matches = new Array(tokens.length); - - // Compile all the patterns before compilation. - for (var i = 0; i < tokens.length; i++) { - if (typeof tokens[i] === 'object') { - matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$'); - } - } - - return function (obj, opts) { - var path = ''; - var data = obj || {}; - var options = opts || {}; - var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent; - - for (var i = 0; i < tokens.length; i++) { - var token = tokens[i]; - - if (typeof token === 'string') { - path += token; - - continue - } - - var value = data[token.name]; - var segment; - - if (value == null) { - if (token.optional) { - // Prepend partial segment prefixes. - if (token.partial) { - path += token.prefix; - } - - continue - } else { - throw new TypeError('Expected "' + token.name + '" to be defined') - } - } - - if (isarray(value)) { - if (!token.repeat) { - throw new TypeError('Expected "' + token.name + '" to not repeat, but received `' + JSON.stringify(value) + '`') - } - - if (value.length === 0) { - if (token.optional) { - continue - } else { - throw new TypeError('Expected "' + token.name + '" to not be empty') - } - } - - for (var j = 0; j < value.length; j++) { - segment = encode(value[j]); - - if (!matches[i].test(segment)) { - throw new TypeError('Expected all "' + token.name + '" to match "' + token.pattern + '", but received `' + JSON.stringify(segment) + '`') - } - - path += (j === 0 ? token.prefix : token.delimiter) + segment; - } - - continue - } - - segment = token.asterisk ? encodeAsterisk(value) : encode(value); - - if (!matches[i].test(segment)) { - throw new TypeError('Expected "' + token.name + '" to match "' + token.pattern + '", but received "' + segment + '"') - } - - path += token.prefix + segment; - } - - return path - } - } - - /** - * Escape a regular expression string. - * - * @param {string} str - * @return {string} - */ - function escapeString (str) { - return str.replace(/([.+*?=^!:${}()[\]|\/\\])/g, '\\$1') - } - - /** - * Escape the capturing group by escaping special characters and meaning. - * - * @param {string} group - * @return {string} - */ - function escapeGroup (group) { - return group.replace(/([=!:$\/()])/g, '\\$1') - } - - /** - * Attach the keys as a property of the regexp. - * - * @param {!RegExp} re - * @param {Array} keys - * @return {!RegExp} - */ - function attachKeys (re, keys) { - re.keys = keys; - return re - } - - /** - * Get the flags for a regexp from the options. - * - * @param {Object} options - * @return {string} - */ - function flags (options) { - return options.sensitive ? '' : 'i' - } - - /** - * Pull out keys from a regexp. - * - * @param {!RegExp} path - * @param {!Array} keys - * @return {!RegExp} - */ - function regexpToRegexp (path, keys) { - // Use a negative lookahead to match only capturing groups. - var groups = path.source.match(/\((?!\?)/g); - - if (groups) { - for (var i = 0; i < groups.length; i++) { - keys.push({ - name: i, - prefix: null, - delimiter: null, - optional: false, - repeat: false, - partial: false, - asterisk: false, - pattern: null - }); - } - } - - return attachKeys(path, keys) - } - - /** - * Transform an array into a regexp. - * - * @param {!Array} path - * @param {Array} keys - * @param {!Object} options - * @return {!RegExp} - */ - function arrayToRegexp (path, keys, options) { - var parts = []; - - for (var i = 0; i < path.length; i++) { - parts.push(pathToRegexp(path[i], keys, options).source); - } - - var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options)); - - return attachKeys(regexp, keys) - } - - /** - * Create a path regexp from string input. - * - * @param {string} path - * @param {!Array} keys - * @param {!Object} options - * @return {!RegExp} - */ - function stringToRegexp (path, keys, options) { - return tokensToRegExp(parse(path, options), keys, options) - } - - /** - * Expose a function for taking tokens and returning a RegExp. - * - * @param {!Array} tokens - * @param {(Array|Object)=} keys - * @param {Object=} options - * @return {!RegExp} - */ - function tokensToRegExp (tokens, keys, options) { - if (!isarray(keys)) { - options = /** @type {!Object} */ (keys || options); - keys = []; - } - - options = options || {}; - - var strict = options.strict; - var end = options.end !== false; - var route = ''; - - // Iterate over the tokens and create our regexp string. - for (var i = 0; i < tokens.length; i++) { - var token = tokens[i]; - - if (typeof token === 'string') { - route += escapeString(token); - } else { - var prefix = escapeString(token.prefix); - var capture = '(?:' + token.pattern + ')'; - - keys.push(token); - - if (token.repeat) { - capture += '(?:' + prefix + capture + ')*'; - } - - if (token.optional) { - if (!token.partial) { - capture = '(?:' + prefix + '(' + capture + '))?'; - } else { - capture = prefix + '(' + capture + ')?'; - } - } else { - capture = prefix + '(' + capture + ')'; - } - - route += capture; - } - } - - var delimiter = escapeString(options.delimiter || '/'); - var endsWithDelimiter = route.slice(-delimiter.length) === delimiter; - - // In non-strict mode we allow a slash at the end of match. If the path to - // match already ends with a slash, we remove it for consistency. The slash - // is valid at the end of a path match, not in the middle. This is important - // in non-ending mode, where "/test/" shouldn't match "/test//route". - if (!strict) { - route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'; - } - - if (end) { - route += '$'; - } else { - // In non-ending mode, we need the capturing groups to match as much as - // possible by using a positive lookahead to the end or next path segment. - route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'; - } - - return attachKeys(new RegExp('^' + route, flags(options)), keys) - } - - /** - * Normalize the given path string, returning a regular expression. - * - * An empty array can be passed in for the keys, which will hold the - * placeholder key descriptions. For example, using `/user/:id`, `keys` will - * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`. - * - * @param {(string|RegExp|Array)} path - * @param {(Array|Object)=} keys - * @param {Object=} options - * @return {!RegExp} - */ - function pathToRegexp (path, keys, options) { - if (!isarray(keys)) { - options = /** @type {!Object} */ (keys || options); - keys = []; - } - - options = options || {}; - - if (path instanceof RegExp) { - return regexpToRegexp(path, /** @type {!Array} */ (keys)) - } - - if (isarray(path)) { - return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options) - } - - return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options) - } - pathToRegexp_1.parse = parse_1; - pathToRegexp_1.compile = compile_1; - pathToRegexp_1.tokensToFunction = tokensToFunction_1; - pathToRegexp_1.tokensToRegExp = tokensToRegExp_1; - - function _objectWithoutPropertiesLoose(source, excluded) { - if (source == null) return {}; - var target = {}; - var sourceKeys = Object.keys(source); - var key, i; - - for (i = 0; i < sourceKeys.length; i++) { - key = sourceKeys[i]; - if (excluded.indexOf(key) >= 0) continue; - target[key] = source[key]; - } - - return target; - } - - /** - * Copyright 2015, Yahoo! Inc. - * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. - */ - - var REACT_STATICS = { - childContextTypes: true, - contextType: true, - contextTypes: true, - defaultProps: true, - displayName: true, - getDefaultProps: true, - getDerivedStateFromError: true, - getDerivedStateFromProps: true, - mixins: true, - propTypes: true, - type: true - }; - - var KNOWN_STATICS = { - name: true, - length: true, - prototype: true, - caller: true, - callee: true, - arguments: true, - arity: true - }; - - var FORWARD_REF_STATICS = { - '$$typeof': true, - render: true, - defaultProps: true, - displayName: true, - propTypes: true - }; - - var MEMO_STATICS = { - '$$typeof': true, - compare: true, - defaultProps: true, - displayName: true, - propTypes: true, - type: true - }; - - var TYPE_STATICS = {}; - TYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS; - - function getStatics(component) { - if (reactIs.isMemo(component)) { - return MEMO_STATICS; - } - return TYPE_STATICS[component['$$typeof']] || REACT_STATICS; - } - - var defineProperty = Object.defineProperty; - var getOwnPropertyNames = Object.getOwnPropertyNames; - var getOwnPropertySymbols$1 = Object.getOwnPropertySymbols; - var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; - var getPrototypeOf = Object.getPrototypeOf; - var objectPrototype = Object.prototype; - - function hoistNonReactStatics(targetComponent, sourceComponent, blacklist) { - if (typeof sourceComponent !== 'string') { - // don't hoist over string (html) components - - if (objectPrototype) { - var inheritedComponent = getPrototypeOf(sourceComponent); - if (inheritedComponent && inheritedComponent !== objectPrototype) { - hoistNonReactStatics(targetComponent, inheritedComponent, blacklist); - } - } - - var keys = getOwnPropertyNames(sourceComponent); - - if (getOwnPropertySymbols$1) { - keys = keys.concat(getOwnPropertySymbols$1(sourceComponent)); - } - - var targetStatics = getStatics(targetComponent); - var sourceStatics = getStatics(sourceComponent); - - for (var i = 0; i < keys.length; ++i) { - var key = keys[i]; - if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) { - var descriptor = getOwnPropertyDescriptor(sourceComponent, key); - try { - // Avoid failures from read-only properties - defineProperty(targetComponent, key, descriptor); - } catch (e) {} - } - } - - return targetComponent; - } - - return targetComponent; - } - - var hoistNonReactStatics_cjs = hoistNonReactStatics; - - var createNamedContext = function createNamedContext(name) { - var context = index(); - context.displayName = name; - return context; - }; - - var historyContext = - /*#__PURE__*/ - createNamedContext("Router-History"); // TODO: Replace with React.createContext once we can assume React 16+ - - var createNamedContext$1 = function createNamedContext(name) { - var context = index(); - context.displayName = name; - return context; - }; - - var context = - /*#__PURE__*/ - createNamedContext$1("Router"); - /** - * The public API for putting history on context. - */ - - var Router = - /*#__PURE__*/ - function (_React$Component) { - _inheritsLoose(Router, _React$Component); - - Router.computeRootMatch = function computeRootMatch(pathname) { - return { - path: "/", - url: "/", - params: {}, - isExact: pathname === "/" - }; - }; - - function Router(props) { - var _this; - - _this = _React$Component.call(this, props) || this; - _this.state = { - location: props.history.location - }; // This is a bit of a hack. We have to start listening for location - // changes here in the constructor in case there are any s - // on the initial render. If there are, they will replace/push when - // they mount and since cDM fires in children before parents, we may - // get a new location before the is mounted. - - _this._isMounted = false; - _this._pendingLocation = null; - - if (!props.staticContext) { - _this.unlisten = props.history.listen(function (location) { - if (_this._isMounted) { - _this.setState({ - location: location - }); - } else { - _this._pendingLocation = location; - } - }); - } - - return _this; - } - - var _proto = Router.prototype; - - _proto.componentDidMount = function componentDidMount() { - this._isMounted = true; - - if (this._pendingLocation) { - this.setState({ - location: this._pendingLocation - }); - } - }; - - _proto.componentWillUnmount = function componentWillUnmount() { - if (this.unlisten) this.unlisten(); - }; - - _proto.render = function render() { - return React__default.createElement(context.Provider, { - value: { - history: this.props.history, - location: this.state.location, - match: Router.computeRootMatch(this.state.location.pathname), - staticContext: this.props.staticContext - } - }, React__default.createElement(historyContext.Provider, { - children: this.props.children || null, - value: this.props.history - })); - }; - - return Router; - }(React__default.Component); - - { - Router.propTypes = { - children: propTypes.node, - history: propTypes.object.isRequired, - staticContext: propTypes.object - }; - - Router.prototype.componentDidUpdate = function (prevProps) { - warning(prevProps.history === this.props.history, "You cannot change ") ; - }; - } - /** - * The public API for a that stores location in memory. - */ - - - var MemoryRouter = - /*#__PURE__*/ - function (_React$Component) { - _inheritsLoose(MemoryRouter, _React$Component); - - function MemoryRouter() { - var _this; - - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this; - _this.history = createMemoryHistory(_this.props); - return _this; - } - - var _proto = MemoryRouter.prototype; - - _proto.render = function render() { - return React__default.createElement(Router, { - history: this.history, - children: this.props.children - }); - }; - - return MemoryRouter; - }(React__default.Component); - - { - MemoryRouter.propTypes = { - initialEntries: propTypes.array, - initialIndex: propTypes.number, - getUserConfirmation: propTypes.func, - keyLength: propTypes.number, - children: propTypes.node - }; - - MemoryRouter.prototype.componentDidMount = function () { - warning(!this.props.history, " ignores the history prop. To use a custom history, " + "use `import { Router }` instead of `import { MemoryRouter as Router }`.") ; - }; - } - - var Lifecycle = - /*#__PURE__*/ - function (_React$Component) { - _inheritsLoose(Lifecycle, _React$Component); - - function Lifecycle() { - return _React$Component.apply(this, arguments) || this; - } - - var _proto = Lifecycle.prototype; - - _proto.componentDidMount = function componentDidMount() { - if (this.props.onMount) this.props.onMount.call(this, this); - }; - - _proto.componentDidUpdate = function componentDidUpdate(prevProps) { - if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps); - }; - - _proto.componentWillUnmount = function componentWillUnmount() { - if (this.props.onUnmount) this.props.onUnmount.call(this, this); - }; - - _proto.render = function render() { - return null; - }; - - return Lifecycle; - }(React__default.Component); - /** - * The public API for prompting the user before navigating away from a screen. - */ - - - function Prompt(_ref) { - var message = _ref.message, - _ref$when = _ref.when, - when = _ref$when === void 0 ? true : _ref$when; - return React__default.createElement(context.Consumer, null, function (context) { - !context ? invariant(false, "You should not use outside a ") : void 0; - if (!when || context.staticContext) return null; - var method = context.history.block; - return React__default.createElement(Lifecycle, { - onMount: function onMount(self) { - self.release = method(message); - }, - onUpdate: function onUpdate(self, prevProps) { - if (prevProps.message !== message) { - self.release(); - self.release = method(message); - } - }, - onUnmount: function onUnmount(self) { - self.release(); - }, - message: message - }); - }); - } - - { - var messageType = propTypes.oneOfType([propTypes.func, propTypes.string]); - Prompt.propTypes = { - when: propTypes.bool, - message: messageType.isRequired - }; - } - - var cache = {}; - var cacheLimit = 10000; - var cacheCount = 0; - - function compilePath(path) { - if (cache[path]) return cache[path]; - var generator = pathToRegexp_1.compile(path); - - if (cacheCount < cacheLimit) { - cache[path] = generator; - cacheCount++; - } - - return generator; - } - /** - * Public API for generating a URL pathname from a path and parameters. - */ - - - function generatePath(path, params) { - if (path === void 0) { - path = "/"; - } - - if (params === void 0) { - params = {}; - } - - return path === "/" ? path : compilePath(path)(params, { - pretty: true - }); - } - /** - * The public API for navigating programmatically with a component. - */ - - - function Redirect(_ref) { - var computedMatch = _ref.computedMatch, - to = _ref.to, - _ref$push = _ref.push, - push = _ref$push === void 0 ? false : _ref$push; - return React__default.createElement(context.Consumer, null, function (context) { - !context ? invariant(false, "You should not use outside a ") : void 0; - var history = context.history, - staticContext = context.staticContext; - var method = push ? history.push : history.replace; - var location = createLocation(computedMatch ? typeof to === "string" ? generatePath(to, computedMatch.params) : _extends({}, to, { - pathname: generatePath(to.pathname, computedMatch.params) - }) : to); // When rendering in a static context, - // set the new location immediately. - - if (staticContext) { - method(location); - return null; - } - - return React__default.createElement(Lifecycle, { - onMount: function onMount() { - method(location); - }, - onUpdate: function onUpdate(self, prevProps) { - var prevLocation = createLocation(prevProps.to); - - if (!locationsAreEqual(prevLocation, _extends({}, location, { - key: prevLocation.key - }))) { - method(location); - } - }, - to: to - }); - }); - } - - { - Redirect.propTypes = { - push: propTypes.bool, - from: propTypes.string, - to: propTypes.oneOfType([propTypes.string, propTypes.object]).isRequired - }; - } - - var cache$1 = {}; - var cacheLimit$1 = 10000; - var cacheCount$1 = 0; - - function compilePath$1(path, options) { - var cacheKey = "" + options.end + options.strict + options.sensitive; - var pathCache = cache$1[cacheKey] || (cache$1[cacheKey] = {}); - if (pathCache[path]) return pathCache[path]; - var keys = []; - var regexp = pathToRegexp_1(path, keys, options); - var result = { - regexp: regexp, - keys: keys - }; - - if (cacheCount$1 < cacheLimit$1) { - pathCache[path] = result; - cacheCount$1++; - } - - return result; - } - /** - * Public API for matching a URL pathname to a path. - */ - - - function matchPath(pathname, options) { - if (options === void 0) { - options = {}; - } - - if (typeof options === "string" || Array.isArray(options)) { - options = { - path: options - }; - } - - var _options = options, - path = _options.path, - _options$exact = _options.exact, - exact = _options$exact === void 0 ? false : _options$exact, - _options$strict = _options.strict, - strict = _options$strict === void 0 ? false : _options$strict, - _options$sensitive = _options.sensitive, - sensitive = _options$sensitive === void 0 ? false : _options$sensitive; - var paths = [].concat(path); - return paths.reduce(function (matched, path) { - if (!path && path !== "") return null; - if (matched) return matched; - - var _compilePath = compilePath$1(path, { - end: exact, - strict: strict, - sensitive: sensitive - }), - regexp = _compilePath.regexp, - keys = _compilePath.keys; - - var match = regexp.exec(pathname); - if (!match) return null; - var url = match[0], - values = match.slice(1); - var isExact = pathname === url; - if (exact && !isExact) return null; - return { - path: path, - // the path used to match - url: path === "/" && url === "" ? "/" : url, - // the matched portion of the URL - isExact: isExact, - // whether or not we matched exactly - params: keys.reduce(function (memo, key, index) { - memo[key.name] = values[index]; - return memo; - }, {}) - }; - }, null); - } - - function isEmptyChildren(children) { - return React__default.Children.count(children) === 0; - } - - function evalChildrenDev(children, props, path) { - var value = children(props); - warning(value !== undefined, "You returned `undefined` from the `children` function of " + (", but you ") + "should have returned a React element or `null`") ; - return value || null; - } - /** - * The public API for matching a single path and rendering. - */ - - - var Route = - /*#__PURE__*/ - function (_React$Component) { - _inheritsLoose(Route, _React$Component); - - function Route() { - return _React$Component.apply(this, arguments) || this; - } - - var _proto = Route.prototype; - - _proto.render = function render() { - var _this = this; - - return React__default.createElement(context.Consumer, null, function (context$1) { - !context$1 ? invariant(false, "You should not use outside a ") : void 0; - var location = _this.props.location || context$1.location; - var match = _this.props.computedMatch ? _this.props.computedMatch // already computed the match for us - : _this.props.path ? matchPath(location.pathname, _this.props) : context$1.match; - - var props = _extends({}, context$1, { - location: location, - match: match - }); - - var _this$props = _this.props, - children = _this$props.children, - component = _this$props.component, - render = _this$props.render; // Preact uses an empty array as children by - // default, so use null if that's the case. - - if (Array.isArray(children) && children.length === 0) { - children = null; - } - - return React__default.createElement(context.Provider, { - value: props - }, props.match ? children ? typeof children === "function" ? evalChildrenDev(children, props, _this.props.path) : children : component ? React__default.createElement(component, props) : render ? render(props) : null : typeof children === "function" ? evalChildrenDev(children, props, _this.props.path) : null); - }); - }; - - return Route; - }(React__default.Component); - - { - Route.propTypes = { - children: propTypes.oneOfType([propTypes.func, propTypes.node]), - component: function component(props, propName) { - if (props[propName] && !reactIs_1(props[propName])) { - return new Error("Invalid prop 'component' supplied to 'Route': the prop is not a valid React component"); - } - }, - exact: propTypes.bool, - location: propTypes.object, - path: propTypes.oneOfType([propTypes.string, propTypes.arrayOf(propTypes.string)]), - render: propTypes.func, - sensitive: propTypes.bool, - strict: propTypes.bool - }; - - Route.prototype.componentDidMount = function () { - warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.component), "You should not use and in the same route; will be ignored") ; - warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.render), "You should not use and in the same route; will be ignored") ; - warning(!(this.props.component && this.props.render), "You should not use and in the same route; will be ignored") ; - }; - - Route.prototype.componentDidUpdate = function (prevProps) { - warning(!(this.props.location && !prevProps.location), ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no "location" prop and then provided one on a subsequent render.') ; - warning(!(!this.props.location && prevProps.location), ' elements should not change from controlled to uncontrolled (or vice versa). You provided a "location" prop initially but omitted it on a subsequent render.') ; - }; - } - - function addLeadingSlash$1(path) { - return path.charAt(0) === "/" ? path : "/" + path; - } - - function addBasename(basename, location) { - if (!basename) return location; - return _extends({}, location, { - pathname: addLeadingSlash$1(basename) + location.pathname - }); - } - - function stripBasename$1(basename, location) { - if (!basename) return location; - var base = addLeadingSlash$1(basename); - if (location.pathname.indexOf(base) !== 0) return location; - return _extends({}, location, { - pathname: location.pathname.substr(base.length) - }); - } - - function createURL(location) { - return typeof location === "string" ? location : createPath(location); - } - - function staticHandler(methodName) { - return function () { - invariant(false, "You cannot %s with ") ; - }; - } - - function noop() {} - /** - * The public top-level API for a "static" , so-called because it - * can't actually change the current location. Instead, it just records - * location changes in a context object. Useful mainly in testing and - * server-rendering scenarios. - */ - - - var StaticRouter = - /*#__PURE__*/ - function (_React$Component) { - _inheritsLoose(StaticRouter, _React$Component); - - function StaticRouter() { - var _this; - - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this; - - _this.handlePush = function (location) { - return _this.navigateTo(location, "PUSH"); - }; - - _this.handleReplace = function (location) { - return _this.navigateTo(location, "REPLACE"); - }; - - _this.handleListen = function () { - return noop; - }; - - _this.handleBlock = function () { - return noop; - }; - - return _this; - } - - var _proto = StaticRouter.prototype; - - _proto.navigateTo = function navigateTo(location, action) { - var _this$props = this.props, - _this$props$basename = _this$props.basename, - basename = _this$props$basename === void 0 ? "" : _this$props$basename, - _this$props$context = _this$props.context, - context = _this$props$context === void 0 ? {} : _this$props$context; - context.action = action; - context.location = addBasename(basename, createLocation(location)); - context.url = createURL(context.location); - }; - - _proto.render = function render() { - var _this$props2 = this.props, - _this$props2$basename = _this$props2.basename, - basename = _this$props2$basename === void 0 ? "" : _this$props2$basename, - _this$props2$context = _this$props2.context, - context = _this$props2$context === void 0 ? {} : _this$props2$context, - _this$props2$location = _this$props2.location, - location = _this$props2$location === void 0 ? "/" : _this$props2$location, - rest = _objectWithoutPropertiesLoose(_this$props2, ["basename", "context", "location"]); - - var history = { - createHref: function createHref(path) { - return addLeadingSlash$1(basename + createURL(path)); - }, - action: "POP", - location: stripBasename$1(basename, createLocation(location)), - push: this.handlePush, - replace: this.handleReplace, - go: staticHandler(), - goBack: staticHandler(), - goForward: staticHandler(), - listen: this.handleListen, - block: this.handleBlock - }; - return React__default.createElement(Router, _extends({}, rest, { - history: history, - staticContext: context - })); - }; - - return StaticRouter; - }(React__default.Component); - - { - StaticRouter.propTypes = { - basename: propTypes.string, - context: propTypes.object, - location: propTypes.oneOfType([propTypes.string, propTypes.object]) - }; - - StaticRouter.prototype.componentDidMount = function () { - warning(!this.props.history, " ignores the history prop. To use a custom history, " + "use `import { Router }` instead of `import { StaticRouter as Router }`.") ; - }; - } - /** - * The public API for rendering the first that matches. - */ - - - var Switch = - /*#__PURE__*/ - function (_React$Component) { - _inheritsLoose(Switch, _React$Component); - - function Switch() { - return _React$Component.apply(this, arguments) || this; - } - - var _proto = Switch.prototype; - - _proto.render = function render() { - var _this = this; - - return React__default.createElement(context.Consumer, null, function (context) { - !context ? invariant(false, "You should not use outside a ") : void 0; - var location = _this.props.location || context.location; - var element, match; // We use React.Children.forEach instead of React.Children.toArray().find() - // here because toArray adds keys to all child elements and we do not want - // to trigger an unmount/remount for two s that render the same - // component at different URLs. - - React__default.Children.forEach(_this.props.children, function (child) { - if (match == null && React__default.isValidElement(child)) { - element = child; - var path = child.props.path || child.props.from; - match = path ? matchPath(location.pathname, _extends({}, child.props, { - path: path - })) : context.match; - } - }); - return match ? React__default.cloneElement(element, { - location: location, - computedMatch: match - }) : null; - }); - }; - - return Switch; - }(React__default.Component); - - { - Switch.propTypes = { - children: propTypes.node, - location: propTypes.object - }; - - Switch.prototype.componentDidUpdate = function (prevProps) { - warning(!(this.props.location && !prevProps.location), ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no "location" prop and then provided one on a subsequent render.') ; - warning(!(!this.props.location && prevProps.location), ' elements should not change from controlled to uncontrolled (or vice versa). You provided a "location" prop initially but omitted it on a subsequent render.') ; - }; - } - /** - * A public higher-order component to access the imperative API - */ - - - function withRouter(Component) { - var displayName = "withRouter(" + (Component.displayName || Component.name) + ")"; - - var C = function C(props) { - var wrappedComponentRef = props.wrappedComponentRef, - remainingProps = _objectWithoutPropertiesLoose(props, ["wrappedComponentRef"]); - - return React__default.createElement(context.Consumer, null, function (context) { - !context ? invariant(false, "You should not use <" + displayName + " /> outside a ") : void 0; - return React__default.createElement(Component, _extends({}, remainingProps, context, { - ref: wrappedComponentRef - })); - }); - }; - - C.displayName = displayName; - C.WrappedComponent = Component; - - { - C.propTypes = { - wrappedComponentRef: propTypes.oneOfType([propTypes.string, propTypes.func, propTypes.object]) - }; - } - - return hoistNonReactStatics_cjs(C, Component); - } - - var useContext = React__default.useContext; - - function useHistory() { - { - !(typeof useContext === "function") ? invariant(false, "You must use React >= 16.8 in order to use useHistory()") : void 0; - } - - return useContext(historyContext); - } - - function useLocation() { - { - !(typeof useContext === "function") ? invariant(false, "You must use React >= 16.8 in order to use useLocation()") : void 0; - } - - return useContext(context).location; - } - - function useParams() { - { - !(typeof useContext === "function") ? invariant(false, "You must use React >= 16.8 in order to use useParams()") : void 0; - } - - var match = useContext(context).match; - return match ? match.params : {}; - } - - function useRouteMatch(path) { - { - !(typeof useContext === "function") ? invariant(false, "You must use React >= 16.8 in order to use useRouteMatch()") : void 0; - } - - var location = useLocation(); - var match = useContext(context).match; - return path ? matchPath(location.pathname, path) : match; - } - - { - if (typeof window !== "undefined") { - var global$1 = window; - var key = "__react_router_build__"; - var buildNames = { - cjs: "CommonJS", - esm: "ES modules", - umd: "UMD" - }; - - if (global$1[key] && global$1[key] !== "esm") { - var initialBuildName = buildNames[global$1[key]]; - var secondaryBuildName = buildNames["esm"]; // TODO: Add link to article that explains in detail how to avoid - // loading 2 different builds. - - throw new Error("You are loading the " + secondaryBuildName + " build of React Router " + ("on a page that is already running the " + initialBuildName + " ") + "build, so things won't work right."); - } - - global$1[key] = "esm"; - } - } - - /** - * The public API for a that uses HTML5 history. - */ - - var BrowserRouter = - /*#__PURE__*/ - function (_React$Component) { - _inheritsLoose(BrowserRouter, _React$Component); - - function BrowserRouter() { - var _this; - - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this; - _this.history = createBrowserHistory(_this.props); - return _this; - } - - var _proto = BrowserRouter.prototype; - - _proto.render = function render() { - return React__default.createElement(Router, { - history: this.history, - children: this.props.children - }); - }; - - return BrowserRouter; - }(React__default.Component); - - { - BrowserRouter.propTypes = { - basename: propTypes.string, - children: propTypes.node, - forceRefresh: propTypes.bool, - getUserConfirmation: propTypes.func, - keyLength: propTypes.number - }; - - BrowserRouter.prototype.componentDidMount = function () { - warning(!this.props.history, " ignores the history prop. To use a custom history, " + "use `import { Router }` instead of `import { BrowserRouter as Router }`.") ; - }; - } - - /** - * The public API for a that uses window.location.hash. - */ - - var HashRouter = - /*#__PURE__*/ - function (_React$Component) { - _inheritsLoose(HashRouter, _React$Component); - - function HashRouter() { - var _this; - - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this; - _this.history = createHashHistory(_this.props); - return _this; - } - - var _proto = HashRouter.prototype; - - _proto.render = function render() { - return React__default.createElement(Router, { - history: this.history, - children: this.props.children - }); - }; - - return HashRouter; - }(React__default.Component); - - { - HashRouter.propTypes = { - basename: propTypes.string, - children: propTypes.node, - getUserConfirmation: propTypes.func, - hashType: propTypes.oneOf(["hashbang", "noslash", "slash"]) - }; - - HashRouter.prototype.componentDidMount = function () { - warning(!this.props.history, " ignores the history prop. To use a custom history, " + "use `import { Router }` instead of `import { HashRouter as Router }`.") ; - }; - } - - var resolveToLocation = function resolveToLocation(to, currentLocation) { - return typeof to === "function" ? to(currentLocation) : to; - }; - var normalizeToLocation = function normalizeToLocation(to, currentLocation) { - return typeof to === "string" ? createLocation(to, null, null, currentLocation) : to; - }; - - var forwardRefShim = function forwardRefShim(C) { - return C; - }; - - var forwardRef = React__default.forwardRef; - - if (typeof forwardRef === "undefined") { - forwardRef = forwardRefShim; - } - - function isModifiedEvent(event) { - return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey); - } - - var LinkAnchor = forwardRef(function (_ref, forwardedRef) { - var innerRef = _ref.innerRef, - navigate = _ref.navigate, - _onClick = _ref.onClick, - rest = _objectWithoutPropertiesLoose(_ref, ["innerRef", "navigate", "onClick"]); - - var target = rest.target; - - var props = _extends({}, rest, { - onClick: function onClick(event) { - try { - if (_onClick) _onClick(event); - } catch (ex) { - event.preventDefault(); - throw ex; - } - - if (!event.defaultPrevented && // onClick prevented default - event.button === 0 && ( // ignore everything but left clicks - !target || target === "_self") && // let browser handle "target=_blank" etc. - !isModifiedEvent(event) // ignore clicks with modifier keys - ) { - event.preventDefault(); - navigate(); - } - } - }); // React 15 compat - - - if (forwardRefShim !== forwardRef) { - props.ref = forwardedRef || innerRef; - } else { - props.ref = innerRef; - } - /* eslint-disable-next-line jsx-a11y/anchor-has-content */ - - - return React__default.createElement("a", props); - }); - - { - LinkAnchor.displayName = "LinkAnchor"; - } - /** - * The public API for rendering a history-aware . - */ - - - var Link = forwardRef(function (_ref2, forwardedRef) { - var _ref2$component = _ref2.component, - component = _ref2$component === void 0 ? LinkAnchor : _ref2$component, - replace = _ref2.replace, - to = _ref2.to, - innerRef = _ref2.innerRef, - rest = _objectWithoutPropertiesLoose(_ref2, ["component", "replace", "to", "innerRef"]); - - return React__default.createElement(context.Consumer, null, function (context) { - !context ? invariant(false, "You should not use outside a ") : void 0; - var history = context.history; - var location = normalizeToLocation(resolveToLocation(to, context.location), context.location); - var href = location ? history.createHref(location) : ""; - - var props = _extends({}, rest, { - href: href, - navigate: function navigate() { - var location = resolveToLocation(to, context.location); - var method = replace ? history.replace : history.push; - method(location); - } - }); // React 15 compat - - - if (forwardRefShim !== forwardRef) { - props.ref = forwardedRef || innerRef; - } else { - props.innerRef = innerRef; - } - - return React__default.createElement(component, props); - }); - }); - - { - var toType = propTypes.oneOfType([propTypes.string, propTypes.object, propTypes.func]); - var refType = propTypes.oneOfType([propTypes.string, propTypes.func, propTypes.shape({ - current: propTypes.any - })]); - Link.displayName = "Link"; - Link.propTypes = { - innerRef: refType, - onClick: propTypes.func, - replace: propTypes.bool, - target: propTypes.string, - to: toType.isRequired - }; - } - - var forwardRefShim$1 = function forwardRefShim(C) { - return C; - }; - - var forwardRef$1 = React__default.forwardRef; - - if (typeof forwardRef$1 === "undefined") { - forwardRef$1 = forwardRefShim$1; - } - - function joinClassnames() { - for (var _len = arguments.length, classnames = new Array(_len), _key = 0; _key < _len; _key++) { - classnames[_key] = arguments[_key]; - } - - return classnames.filter(function (i) { - return i; - }).join(" "); - } - /** - * A wrapper that knows if it's "active" or not. - */ - - - var NavLink = forwardRef$1(function (_ref, forwardedRef) { - var _ref$ariaCurrent = _ref["aria-current"], - ariaCurrent = _ref$ariaCurrent === void 0 ? "page" : _ref$ariaCurrent, - _ref$activeClassName = _ref.activeClassName, - activeClassName = _ref$activeClassName === void 0 ? "active" : _ref$activeClassName, - activeStyle = _ref.activeStyle, - classNameProp = _ref.className, - exact = _ref.exact, - isActiveProp = _ref.isActive, - locationProp = _ref.location, - sensitive = _ref.sensitive, - strict = _ref.strict, - styleProp = _ref.style, - to = _ref.to, - innerRef = _ref.innerRef, - rest = _objectWithoutPropertiesLoose(_ref, ["aria-current", "activeClassName", "activeStyle", "className", "exact", "isActive", "location", "sensitive", "strict", "style", "to", "innerRef"]); - - return React__default.createElement(context.Consumer, null, function (context) { - !context ? invariant(false, "You should not use outside a ") : void 0; - var currentLocation = locationProp || context.location; - var toLocation = normalizeToLocation(resolveToLocation(to, currentLocation), currentLocation); - var path = toLocation.pathname; // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202 - - var escapedPath = path && path.replace(/([.+*?=^!:${}()[\]|/\\])/g, "\\$1"); - var match = escapedPath ? matchPath(currentLocation.pathname, { - path: escapedPath, - exact: exact, - sensitive: sensitive, - strict: strict - }) : null; - var isActive = !!(isActiveProp ? isActiveProp(match, currentLocation) : match); - var className = isActive ? joinClassnames(classNameProp, activeClassName) : classNameProp; - var style = isActive ? _extends({}, styleProp, {}, activeStyle) : styleProp; - - var props = _extends({ - "aria-current": isActive && ariaCurrent || null, - className: className, - style: style, - to: toLocation - }, rest); // React 15 compat - - - if (forwardRefShim$1 !== forwardRef$1) { - props.ref = forwardedRef || innerRef; - } else { - props.innerRef = innerRef; - } - - return React__default.createElement(Link, props); - }); - }); - - { - NavLink.displayName = "NavLink"; - var ariaCurrentType = propTypes.oneOf(["page", "step", "location", "date", "time", "true"]); - NavLink.propTypes = _extends({}, Link.propTypes, { - "aria-current": ariaCurrentType, - activeClassName: propTypes.string, - activeStyle: propTypes.object, - className: propTypes.string, - exact: propTypes.bool, - isActive: propTypes.func, - location: propTypes.object, - sensitive: propTypes.bool, - strict: propTypes.bool, - style: propTypes.object - }); - } - - exports.BrowserRouter = BrowserRouter; - exports.HashRouter = HashRouter; - exports.Link = Link; - exports.MemoryRouter = MemoryRouter; - exports.NavLink = NavLink; - exports.Prompt = Prompt; - exports.Redirect = Redirect; - exports.Route = Route; - exports.Router = Router; - exports.StaticRouter = StaticRouter; - exports.Switch = Switch; - exports.generatePath = generatePath; - exports.matchPath = matchPath; - exports.useHistory = useHistory; - exports.useLocation = useLocation; - exports.useParams = useParams; - exports.useRouteMatch = useRouteMatch; - exports.withRouter = withRouter; - - Object.defineProperty(exports, '__esModule', { value: true }); - -})); -//# sourceMappingURL=react-router-dom.js.map diff --git a/node_modules/react-router-dom/umd/react-router-dom.js.map b/node_modules/react-router-dom/umd/react-router-dom.js.map deleted file mode 100644 index 7bdf7ad..0000000 --- a/node_modules/react-router-dom/umd/react-router-dom.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"react-router-dom.js","sources":["../../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../../node_modules/react-is/cjs/react-is.production.min.js","../../node_modules/react-is/cjs/react-is.development.js","../../node_modules/react-is/index.js","../../node_modules/object-assign/index.js","../../node_modules/prop-types/lib/ReactPropTypesSecret.js","../../node_modules/prop-types/checkPropTypes.js","../../node_modules/prop-types/factoryWithTypeCheckers.js","../../node_modules/prop-types/index.js","../../node_modules/@babel/runtime/helpers/esm/extends.js","../../node_modules/resolve-pathname/index.js","../../node_modules/value-equal/index.js","../../node_modules/tiny-warning/dist/tiny-warning.esm.js","../../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","../../node_modules/history/esm/history.js","../../node_modules/mini-create-react-context/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../../node_modules/mini-create-react-context/dist/esm/index.js","../../node_modules/path-to-regexp/node_modules/isarray/index.js","../../node_modules/path-to-regexp/index.js","../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../../react-router/esm/react-router.js","../modules/BrowserRouter.js","../modules/HashRouter.js","../modules/utils/locationUtils.js","../modules/Link.js","../modules/NavLink.js"],"sourcesContent":["export default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","/** @license React v16.9.0\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';Object.defineProperty(exports,\"__esModule\",{value:!0});\nvar b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?Symbol.for(\"react.suspense_list\"):\n60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.fundamental\"):60117,w=b?Symbol.for(\"react.responder\"):60118;function x(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case h:return a;default:return u}}case t:case r:case d:return u}}}function y(a){return x(a)===m}exports.typeOf=x;exports.AsyncMode=l;\nexports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===v||a.$$typeof===w)};exports.isAsyncMode=function(a){return y(a)||x(a)===l};exports.isConcurrentMode=y;exports.isContextConsumer=function(a){return x(a)===k};exports.isContextProvider=function(a){return x(a)===h};\nexports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return x(a)===n};exports.isFragment=function(a){return x(a)===e};exports.isLazy=function(a){return x(a)===t};exports.isMemo=function(a){return x(a)===r};exports.isPortal=function(a){return x(a)===d};exports.isProfiler=function(a){return x(a)===g};exports.isStrictMode=function(a){return x(a)===f};exports.isSuspense=function(a){return x(a)===p};\n","/** @license React v16.9.0\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\n\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace;\n// TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' ||\n // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE);\n}\n\n/**\n * Forked from fbjs/warning:\n * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js\n *\n * Only change is we use console.warn instead of console.error,\n * and do nothing when 'console' is not supported.\n * This really simplifies the code.\n * ---\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar lowPriorityWarning = function () {};\n\n{\n var printWarning = function (format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.warn(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n lowPriorityWarning = function (condition, format) {\n if (format === undefined) {\n throw new Error('`lowPriorityWarning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nvar lowPriorityWarning$1 = lowPriorityWarning;\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n default:\n return $$typeof;\n }\n }\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n}\n\n// AsyncMode is deprecated along with isAsyncMode\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\n\nvar hasWarnedAboutDeprecatedIsAsyncMode = false;\n\n// AsyncMode should be deprecated\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true;\n lowPriorityWarning$1(false, 'The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.typeOf = typeOf;\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isValidElementType = isValidElementType;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar has = Function.call.bind(Object.prototype.hasOwnProperty);\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to) {\n var from = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n var toParts = to && to.split('/') || [];\n var fromParts = from && from.split('/') || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash = void 0;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) {\n fromParts.unshift('..');\n }if (mustEndAbs && fromParts[0] !== '' && (!fromParts[0] || !isAbsolute(fromParts[0]))) fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction valueEqual(a, b) {\n if (a === b) return true;\n\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n return Array.isArray(b) && a.length === b.length && a.every(function (item, index) {\n return valueEqual(item, b[index]);\n });\n }\n\n var aType = typeof a === 'undefined' ? 'undefined' : _typeof(a);\n var bType = typeof b === 'undefined' ? 'undefined' : _typeof(b);\n\n if (aType !== bType) return false;\n\n if (aType === 'object') {\n var aValue = a.valueOf();\n var bValue = b.valueOf();\n\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n var aKeys = Object.keys(a);\n var bKeys = Object.keys(b);\n\n if (aKeys.length !== bKeys.length) return false;\n\n return aKeys.every(function (key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n\nexport default valueEqual;","var isProduction = process.env.NODE_ENV === 'production';\nfunction warning(condition, message) {\n if (!isProduction) {\n if (condition) {\n return;\n }\n\n var text = \"Warning: \" + message;\n\n if (typeof console !== 'undefined') {\n console.warn(text);\n }\n\n try {\n throw Error(text);\n } catch (x) {}\n }\n}\n\nexport default warning;\n","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n\n if (isProduction) {\n throw new Error(prefix);\n } else {\n throw new Error(prefix + \": \" + (message || ''));\n }\n}\n\nexport default invariant;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return new RegExp('^' + prefix + '(\\\\/|\\\\?|#|$)', 'i').test(path);\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n var hashIndex = window.location.href.indexOf('#');\n window.location.replace(window.location.href.slice(0, hashIndex >= 0 ? hashIndex : 0) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n return '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","export default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","import React, { Component } from 'react';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport warning from 'tiny-warning';\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {};\n\nfunction getUniqueId() {\n var key = '__global_unique_id__';\n return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1;\n}\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + getUniqueId() + '__';\n\n var Provider = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Provider, _Component);\n\n function Provider() {\n var _this;\n\n _this = _Component.apply(this, arguments) || this;\n _this.emitter = createEventEmitter(_this.props.value);\n return _this;\n }\n\n var _proto = Provider.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0;\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (process.env.NODE_ENV !== 'production') {\n warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: ' + changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes.object.isRequired, _Provider$childContex);\n\n var Consumer = /*#__PURE__*/function (_Component2) {\n _inheritsLoose(Consumer, _Component2);\n\n function Consumer() {\n var _this2;\n\n _this2 = _Component2.apply(this, arguments) || this;\n _this2.state = {\n value: _this2.getValue()\n };\n\n _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n };\n\n return _this2;\n }\n\n var _proto2 = Consumer.prototype;\n\n _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n _proto2.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n _proto2.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = PropTypes.object, _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nvar index = React.createContext || createReactContext;\n\nexport default index;\n","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = res[2] || defaultDelimiter\n var pattern = capture || group\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options))\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$')\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","'use strict';\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar ReactIs = require('react-is');\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\n\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\n\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\n\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\n\nvar TYPE_STATICS = {};\nTYPE_STATICS[ReactIs.ForwardRef] = FORWARD_REF_STATICS;\n\nfunction getStatics(component) {\n if (ReactIs.isMemo(component)) {\n return MEMO_STATICS;\n }\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\n\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n\n return targetComponent;\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","import _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { createMemoryHistory, createLocation, locationsAreEqual, createPath } from 'history';\nimport warning from 'tiny-warning';\nimport createContext from 'mini-create-react-context';\nimport invariant from 'tiny-invariant';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport pathToRegexp from 'path-to-regexp';\nimport { isValidElementType } from 'react-is';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport hoistStatics from 'hoist-non-react-statics';\n\n// TODO: Replace with React.createContext once we can assume React 16+\n\nvar createNamedContext = function createNamedContext(name) {\n var context = createContext();\n context.displayName = name;\n return context;\n};\n\nvar historyContext =\n/*#__PURE__*/\ncreateNamedContext(\"Router-History\");\n\n// TODO: Replace with React.createContext once we can assume React 16+\n\nvar createNamedContext$1 = function createNamedContext(name) {\n var context = createContext();\n context.displayName = name;\n return context;\n};\n\nvar context =\n/*#__PURE__*/\ncreateNamedContext$1(\"Router\");\n\n/**\n * The public API for putting history on context.\n */\n\nvar Router =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Router, _React$Component);\n\n Router.computeRootMatch = function computeRootMatch(pathname) {\n return {\n path: \"/\",\n url: \"/\",\n params: {},\n isExact: pathname === \"/\"\n };\n };\n\n function Router(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.state = {\n location: props.history.location\n }; // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n\n _this._isMounted = false;\n _this._pendingLocation = null;\n\n if (!props.staticContext) {\n _this.unlisten = props.history.listen(function (location) {\n if (_this._isMounted) {\n _this.setState({\n location: location\n });\n } else {\n _this._pendingLocation = location;\n }\n });\n }\n\n return _this;\n }\n\n var _proto = Router.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({\n location: this._pendingLocation\n });\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.unlisten) this.unlisten();\n };\n\n _proto.render = function render() {\n return React.createElement(context.Provider, {\n value: {\n history: this.props.history,\n location: this.state.location,\n match: Router.computeRootMatch(this.state.location.pathname),\n staticContext: this.props.staticContext\n }\n }, React.createElement(historyContext.Provider, {\n children: this.props.children || null,\n value: this.props.history\n }));\n };\n\n return Router;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function (prevProps) {\n process.env.NODE_ENV !== \"production\" ? warning(prevProps.history === this.props.history, \"You cannot change \") : void 0;\n };\n}\n\n/**\n * The public API for a that stores location in memory.\n */\n\nvar MemoryRouter =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(MemoryRouter, _React$Component);\n\n function MemoryRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.history = createMemoryHistory(_this.props);\n return _this;\n }\n\n var _proto = MemoryRouter.prototype;\n\n _proto.render = function render() {\n return React.createElement(Router, {\n history: this.history,\n children: this.props.children\n });\n };\n\n return MemoryRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \" ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\") : void 0;\n };\n}\n\nvar Lifecycle =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Lifecycle, _React$Component);\n\n function Lifecycle() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Lifecycle.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n };\n\n _proto.render = function render() {\n return null;\n };\n\n return Lifecycle;\n}(React.Component);\n\n/**\n * The public API for prompting the user before navigating away from a screen.\n */\n\nfunction Prompt(_ref) {\n var message = _ref.message,\n _ref$when = _ref.when,\n when = _ref$when === void 0 ? true : _ref$when;\n return React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n if (!when || context.staticContext) return null;\n var method = context.history.block;\n return React.createElement(Lifecycle, {\n onMount: function onMount(self) {\n self.release = method(message);\n },\n onUpdate: function onUpdate(self, prevProps) {\n if (prevProps.message !== message) {\n self.release();\n self.release = method(message);\n }\n },\n onUnmount: function onUnmount(self) {\n self.release();\n },\n message: message\n });\n });\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n var messageType = PropTypes.oneOfType([PropTypes.func, PropTypes.string]);\n Prompt.propTypes = {\n when: PropTypes.bool,\n message: messageType.isRequired\n };\n}\n\nvar cache = {};\nvar cacheLimit = 10000;\nvar cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n var generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\n\n\nfunction generatePath(path, params) {\n if (path === void 0) {\n path = \"/\";\n }\n\n if (params === void 0) {\n params = {};\n }\n\n return path === \"/\" ? path : compilePath(path)(params, {\n pretty: true\n });\n}\n\n/**\n * The public API for navigating programmatically with a component.\n */\n\nfunction Redirect(_ref) {\n var computedMatch = _ref.computedMatch,\n to = _ref.to,\n _ref$push = _ref.push,\n push = _ref$push === void 0 ? false : _ref$push;\n return React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var history = context.history,\n staticContext = context.staticContext;\n var method = push ? history.push : history.replace;\n var location = createLocation(computedMatch ? typeof to === \"string\" ? generatePath(to, computedMatch.params) : _extends({}, to, {\n pathname: generatePath(to.pathname, computedMatch.params)\n }) : to); // When rendering in a static context,\n // set the new location immediately.\n\n if (staticContext) {\n method(location);\n return null;\n }\n\n return React.createElement(Lifecycle, {\n onMount: function onMount() {\n method(location);\n },\n onUpdate: function onUpdate(self, prevProps) {\n var prevLocation = createLocation(prevProps.to);\n\n if (!locationsAreEqual(prevLocation, _extends({}, location, {\n key: prevLocation.key\n }))) {\n method(location);\n }\n },\n to: to\n });\n });\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nvar cache$1 = {};\nvar cacheLimit$1 = 10000;\nvar cacheCount$1 = 0;\n\nfunction compilePath$1(path, options) {\n var cacheKey = \"\" + options.end + options.strict + options.sensitive;\n var pathCache = cache$1[cacheKey] || (cache$1[cacheKey] = {});\n if (pathCache[path]) return pathCache[path];\n var keys = [];\n var regexp = pathToRegexp(path, keys, options);\n var result = {\n regexp: regexp,\n keys: keys\n };\n\n if (cacheCount$1 < cacheLimit$1) {\n pathCache[path] = result;\n cacheCount$1++;\n }\n\n return result;\n}\n/**\n * Public API for matching a URL pathname to a path.\n */\n\n\nfunction matchPath(pathname, options) {\n if (options === void 0) {\n options = {};\n }\n\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = {\n path: options\n };\n }\n\n var _options = options,\n path = _options.path,\n _options$exact = _options.exact,\n exact = _options$exact === void 0 ? false : _options$exact,\n _options$strict = _options.strict,\n strict = _options$strict === void 0 ? false : _options$strict,\n _options$sensitive = _options.sensitive,\n sensitive = _options$sensitive === void 0 ? false : _options$sensitive;\n var paths = [].concat(path);\n return paths.reduce(function (matched, path) {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n var _compilePath = compilePath$1(path, {\n end: exact,\n strict: strict,\n sensitive: sensitive\n }),\n regexp = _compilePath.regexp,\n keys = _compilePath.keys;\n\n var match = regexp.exec(pathname);\n if (!match) return null;\n var url = match[0],\n values = match.slice(1);\n var isExact = pathname === url;\n if (exact && !isExact) return null;\n return {\n path: path,\n // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url,\n // the matched portion of the URL\n isExact: isExact,\n // whether or not we matched exactly\n params: keys.reduce(function (memo, key, index) {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n var value = children(props);\n process.env.NODE_ENV !== \"production\" ? warning(value !== undefined, \"You returned `undefined` from the `children` function of \" + (\", but you \") + \"should have returned a React element or `null`\") : void 0;\n return value || null;\n}\n/**\n * The public API for matching a single path and rendering.\n */\n\n\nvar Route =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Route, _React$Component);\n\n function Route() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Route.prototype;\n\n _proto.render = function render() {\n var _this = this;\n\n return React.createElement(context.Consumer, null, function (context$1) {\n !context$1 ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var location = _this.props.location || context$1.location;\n var match = _this.props.computedMatch ? _this.props.computedMatch // already computed the match for us\n : _this.props.path ? matchPath(location.pathname, _this.props) : context$1.match;\n\n var props = _extends({}, context$1, {\n location: location,\n match: match\n });\n\n var _this$props = _this.props,\n children = _this$props.children,\n component = _this$props.component,\n render = _this$props.render; // Preact uses an empty array as children by\n // default, so use null if that's the case.\n\n if (Array.isArray(children) && children.length === 0) {\n children = null;\n }\n\n return React.createElement(context.Provider, {\n value: props\n }, props.match ? children ? typeof children === \"function\" ? process.env.NODE_ENV !== \"production\" ? evalChildrenDev(children, props, _this.props.path) : children(props) : children : component ? React.createElement(component, props) : render ? render(props) : null : typeof children === \"function\" ? process.env.NODE_ENV !== \"production\" ? evalChildrenDev(children, props, _this.props.path) : children(props) : null);\n });\n };\n\n return Route;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: function component(props, propName) {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\"Invalid prop 'component' supplied to 'Route': the prop is not a valid React component\");\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.component), \"You should not use and in the same route; will be ignored\") : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.render), \"You should not use and in the same route; will be ignored\") : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.component && this.props.render), \"You should not use and in the same route; will be ignored\") : void 0;\n };\n\n Route.prototype.componentDidUpdate = function (prevProps) {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.location && !prevProps.location), ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(!this.props.location && prevProps.location), ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.') : void 0;\n };\n}\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n return _extends({}, location, {\n pathname: addLeadingSlash(basename) + location.pathname\n });\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n var base = addLeadingSlash(basename);\n if (location.pathname.indexOf(base) !== 0) return location;\n return _extends({}, location, {\n pathname: location.pathname.substr(base.length)\n });\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return function () {\n process.env.NODE_ENV !== \"production\" ? invariant(false, \"You cannot %s with \", methodName) : invariant(false) ;\n };\n}\n\nfunction noop() {}\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\n\n\nvar StaticRouter =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(StaticRouter, _React$Component);\n\n function StaticRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _this.handlePush = function (location) {\n return _this.navigateTo(location, \"PUSH\");\n };\n\n _this.handleReplace = function (location) {\n return _this.navigateTo(location, \"REPLACE\");\n };\n\n _this.handleListen = function () {\n return noop;\n };\n\n _this.handleBlock = function () {\n return noop;\n };\n\n return _this;\n }\n\n var _proto = StaticRouter.prototype;\n\n _proto.navigateTo = function navigateTo(location, action) {\n var _this$props = this.props,\n _this$props$basename = _this$props.basename,\n basename = _this$props$basename === void 0 ? \"\" : _this$props$basename,\n _this$props$context = _this$props.context,\n context = _this$props$context === void 0 ? {} : _this$props$context;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n };\n\n _proto.render = function render() {\n var _this$props2 = this.props,\n _this$props2$basename = _this$props2.basename,\n basename = _this$props2$basename === void 0 ? \"\" : _this$props2$basename,\n _this$props2$context = _this$props2.context,\n context = _this$props2$context === void 0 ? {} : _this$props2$context,\n _this$props2$location = _this$props2.location,\n location = _this$props2$location === void 0 ? \"/\" : _this$props2$location,\n rest = _objectWithoutPropertiesLoose(_this$props2, [\"basename\", \"context\", \"location\"]);\n\n var history = {\n createHref: function createHref(path) {\n return addLeadingSlash(basename + createURL(path));\n },\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n return React.createElement(Router, _extends({}, rest, {\n history: history,\n staticContext: context\n }));\n };\n\n return StaticRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \" ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { StaticRouter as Router }`.\") : void 0;\n };\n}\n\n/**\n * The public API for rendering the first that matches.\n */\n\nvar Switch =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Switch, _React$Component);\n\n function Switch() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Switch.prototype;\n\n _proto.render = function render() {\n var _this = this;\n\n return React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var location = _this.props.location || context.location;\n var element, match; // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n\n React.Children.forEach(_this.props.children, function (child) {\n if (match == null && React.isValidElement(child)) {\n element = child;\n var path = child.props.path || child.props.from;\n match = path ? matchPath(location.pathname, _extends({}, child.props, {\n path: path\n })) : context.match;\n }\n });\n return match ? React.cloneElement(element, {\n location: location,\n computedMatch: match\n }) : null;\n });\n };\n\n return Switch;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function (prevProps) {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.location && !prevProps.location), ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(!this.props.location && prevProps.location), ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.') : void 0;\n };\n}\n\n/**\n * A public higher-order component to access the imperative API\n */\n\nfunction withRouter(Component) {\n var displayName = \"withRouter(\" + (Component.displayName || Component.name) + \")\";\n\n var C = function C(props) {\n var wrappedComponentRef = props.wrappedComponentRef,\n remainingProps = _objectWithoutPropertiesLoose(props, [\"wrappedComponentRef\"]);\n\n return React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use <\" + displayName + \" /> outside a \") : invariant(false) : void 0;\n return React.createElement(Component, _extends({}, remainingProps, context, {\n ref: wrappedComponentRef\n }));\n });\n };\n\n C.displayName = displayName;\n C.WrappedComponent = Component;\n\n if (process.env.NODE_ENV !== \"production\") {\n C.propTypes = {\n wrappedComponentRef: PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.object])\n };\n }\n\n return hoistStatics(C, Component);\n}\n\nvar useContext = React.useContext;\nfunction useHistory() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useHistory()\") : invariant(false) : void 0;\n }\n\n return useContext(historyContext);\n}\nfunction useLocation() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useLocation()\") : invariant(false) : void 0;\n }\n\n return useContext(context).location;\n}\nfunction useParams() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useParams()\") : invariant(false) : void 0;\n }\n\n var match = useContext(context).match;\n return match ? match.params : {};\n}\nfunction useRouteMatch(path) {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useRouteMatch()\") : invariant(false) : void 0;\n }\n\n var location = useLocation();\n var match = useContext(context).match;\n return path ? matchPath(location.pathname, path) : match;\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n if (typeof window !== \"undefined\") {\n var global = window;\n var key = \"__react_router_build__\";\n var buildNames = {\n cjs: \"CommonJS\",\n esm: \"ES modules\",\n umd: \"UMD\"\n };\n\n if (global[key] && global[key] !== \"esm\") {\n var initialBuildName = buildNames[global[key]];\n var secondaryBuildName = buildNames[\"esm\"]; // TODO: Add link to article that explains in detail how to avoid\n // loading 2 different builds.\n\n throw new Error(\"You are loading the \" + secondaryBuildName + \" build of React Router \" + (\"on a page that is already running the \" + initialBuildName + \" \") + \"build, so things won't work right.\");\n }\n\n global[key] = \"esm\";\n }\n}\n\nexport { MemoryRouter, Prompt, Redirect, Route, Router, StaticRouter, Switch, historyContext as __HistoryContext, context as __RouterContext, generatePath, matchPath, useHistory, useLocation, useParams, useRouteMatch, withRouter };\n//# sourceMappingURL=react-router.js.map\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n );\n };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n return ;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const method = replace ? history.replace : history.push;\n\n method(location);\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link.js\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\",\n activeStyle,\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n sensitive,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n sensitive,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n const className = isActive\n ? joinClassnames(classNameProp, activeClassName)\n : classNameProp;\n const style = isActive ? { ...styleProp, ...activeStyle } : styleProp;\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return ;\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.string,\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.object\n };\n}\n\nexport default NavLink;\n"],"names":["require$$1","ReactPropTypesSecret","require$$0","has","printWarning","ReactIs","assign","checkPropTypes","_inheritsLoose","Component","PropTypes","React","getOwnPropertySymbols","createNamedContext","context","createContext","BrowserRouter","history","createHistory","props","render","children","propTypes","basename","string","node","forceRefresh","bool","getUserConfirmation","func","keyLength","number","prototype","componentDidMount","warning","HashRouter","hashType","oneOf","resolveToLocation","to","currentLocation","normalizeToLocation","createLocation","forwardRefShim","C","forwardRef","isModifiedEvent","event","metaKey","altKey","ctrlKey","shiftKey","LinkAnchor","forwardedRef","innerRef","navigate","onClick","rest","target","ex","preventDefault","defaultPrevented","button","ref","displayName","Link","component","replace","RouterContext","invariant","location","href","createHref","method","push","createElement","toType","oneOfType","object","refType","shape","current","any","isRequired","joinClassnames","classnames","filter","i","join","NavLink","ariaCurrent","activeClassName","activeStyle","classNameProp","className","exact","isActiveProp","isActive","locationProp","sensitive","strict","styleProp","style","toLocation","path","pathname","escapedPath","match","matchPath","ariaCurrentType"],"mappings":";;;;;;;;EAAe,SAAS,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE;EAC7D,EAAE,QAAQ,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;EAC3D,EAAE,QAAQ,CAAC,SAAS,CAAC,WAAW,GAAG,QAAQ,CAAC;EAC5C,EAAE,QAAQ,CAAC,SAAS,GAAG,UAAU,CAAC;EAClC;;;;;;;;;;GAAC;ACJD,EASa,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;EACpE,IAAI,CAAC,CAAC,UAAU,GAAG,OAAO,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC;EAC1gB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,OAAO,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;EAC3e,sBAAsB,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;EACjP,0BAA0B,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,QAAQ,GAAG,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;EACpd,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAM,QAAQ,GAAG,OAAO,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACd7c;;;AAaA,EAA2C;IACzC,CAAC,WAAW;AACd;EAEA,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;;;;EAI9D,IAAI,SAAS,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,GAAG,CAAC;;EAE3D,IAAI,kBAAkB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,MAAM,CAAC;EAC1E,IAAI,iBAAiB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,MAAM,CAAC;EACxE,IAAI,mBAAmB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC;EAC5E,IAAI,sBAAsB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,MAAM,CAAC;EAClF,IAAI,mBAAmB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC;EAC5E,IAAI,mBAAmB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC;EAC5E,IAAI,kBAAkB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,MAAM,CAAC;;;EAG1E,IAAI,qBAAqB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,MAAM,CAAC;EAChF,IAAI,0BAA0B,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,GAAG,MAAM,CAAC;EAC1F,IAAI,sBAAsB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,MAAM,CAAC;EAClF,IAAI,mBAAmB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC;EAC5E,IAAI,wBAAwB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,GAAG,MAAM,CAAC;EACtF,IAAI,eAAe,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC;EACpE,IAAI,eAAe,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC;EACpE,IAAI,sBAAsB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,MAAM,CAAC;EAClF,IAAI,oBAAoB,GAAG,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,MAAM,CAAC;;EAE9E,SAAS,kBAAkB,CAAC,IAAI,EAAE;IAChC,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,UAAU;;IAE7D,IAAI,KAAK,mBAAmB,IAAI,IAAI,KAAK,0BAA0B,IAAI,IAAI,KAAK,mBAAmB,IAAI,IAAI,KAAK,sBAAsB,IAAI,IAAI,KAAK,mBAAmB,IAAI,IAAI,KAAK,wBAAwB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,CAAC,QAAQ,KAAK,eAAe,IAAI,IAAI,CAAC,QAAQ,KAAK,eAAe,IAAI,IAAI,CAAC,QAAQ,KAAK,mBAAmB,IAAI,IAAI,CAAC,QAAQ,KAAK,kBAAkB,IAAI,IAAI,CAAC,QAAQ,KAAK,sBAAsB,IAAI,IAAI,CAAC,QAAQ,KAAK,sBAAsB,IAAI,IAAI,CAAC,QAAQ,KAAK,oBAAoB,CAAC,CAAC;GACzhB;;;;;;;;;;;;;;;;EAgBD,IAAI,kBAAkB,GAAG,YAAY,EAAE,CAAC;;EAExC;IACE,IAAI,YAAY,GAAG,UAAU,MAAM,EAAE;MACnC,KAAK,IAAI,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE;QACtG,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;OAClC;;MAED,IAAI,QAAQ,GAAG,CAAC,CAAC;MACjB,IAAI,OAAO,GAAG,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,YAAY;QAC5D,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;OACzB,CAAC,CAAC;MACH,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE;QAClC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;OACvB;MACD,IAAI;;;;QAIF,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;OAC1B,CAAC,OAAO,CAAC,EAAE,EAAE;KACf,CAAC;;IAEF,kBAAkB,GAAG,UAAU,SAAS,EAAE,MAAM,EAAE;MAChD,IAAI,MAAM,KAAK,SAAS,EAAE;QACxB,MAAM,IAAI,KAAK,CAAC,sEAAsE,GAAG,kBAAkB,CAAC,CAAC;OAC9G;MACD,IAAI,CAAC,SAAS,EAAE;QACd,KAAK,IAAI,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,IAAI,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,EAAE,EAAE;UAC7G,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;SACpC;;QAED,YAAY,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;OACtD;KACF,CAAC;GACH;;EAED,IAAI,oBAAoB,GAAG,kBAAkB,CAAC;;EAE9C,SAAS,MAAM,CAAC,MAAM,EAAE;IACtB,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE;MACjD,IAAI,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;MAC/B,QAAQ,QAAQ;QACd,KAAK,kBAAkB;UACrB,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;;UAEvB,QAAQ,IAAI;YACV,KAAK,qBAAqB,CAAC;YAC3B,KAAK,0BAA0B,CAAC;YAChC,KAAK,mBAAmB,CAAC;YACzB,KAAK,mBAAmB,CAAC;YACzB,KAAK,sBAAsB,CAAC;YAC5B,KAAK,mBAAmB;cACtB,OAAO,IAAI,CAAC;YACd;cACE,IAAI,YAAY,GAAG,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC;;cAEzC,QAAQ,YAAY;gBAClB,KAAK,kBAAkB,CAAC;gBACxB,KAAK,sBAAsB,CAAC;gBAC5B,KAAK,mBAAmB;kBACtB,OAAO,YAAY,CAAC;gBACtB;kBACE,OAAO,QAAQ,CAAC;eACnB;WACJ;QACH,KAAK,eAAe,CAAC;QACrB,KAAK,eAAe,CAAC;QACrB,KAAK,iBAAiB;UACpB,OAAO,QAAQ,CAAC;OACnB;KACF;;IAED,OAAO,SAAS,CAAC;GAClB;;;EAGD,IAAI,SAAS,GAAG,qBAAqB,CAAC;EACtC,IAAI,cAAc,GAAG,0BAA0B,CAAC;EAChD,IAAI,eAAe,GAAG,kBAAkB,CAAC;EACzC,IAAI,eAAe,GAAG,mBAAmB,CAAC;EAC1C,IAAI,OAAO,GAAG,kBAAkB,CAAC;EACjC,IAAI,UAAU,GAAG,sBAAsB,CAAC;EACxC,IAAI,QAAQ,GAAG,mBAAmB,CAAC;EACnC,IAAI,IAAI,GAAG,eAAe,CAAC;EAC3B,IAAI,IAAI,GAAG,eAAe,CAAC;EAC3B,IAAI,MAAM,GAAG,iBAAiB,CAAC;EAC/B,IAAI,QAAQ,GAAG,mBAAmB,CAAC;EACnC,IAAI,UAAU,GAAG,sBAAsB,CAAC;EACxC,IAAI,QAAQ,GAAG,mBAAmB,CAAC;;EAEnC,IAAI,mCAAmC,GAAG,KAAK,CAAC;;;EAGhD,SAAS,WAAW,CAAC,MAAM,EAAE;IAC3B;MACE,IAAI,CAAC,mCAAmC,EAAE;QACxC,mCAAmC,GAAG,IAAI,CAAC;QAC3C,oBAAoB,CAAC,KAAK,EAAE,uDAAuD,GAAG,4DAA4D,GAAG,gEAAgE,CAAC,CAAC;OACxN;KACF;IACD,OAAO,gBAAgB,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,qBAAqB,CAAC;GAC7E;EACD,SAAS,gBAAgB,CAAC,MAAM,EAAE;IAChC,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,0BAA0B,CAAC;GACtD;EACD,SAAS,iBAAiB,CAAC,MAAM,EAAE;IACjC,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,kBAAkB,CAAC;GAC9C;EACD,SAAS,iBAAiB,CAAC,MAAM,EAAE;IACjC,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,mBAAmB,CAAC;GAC/C;EACD,SAAS,SAAS,CAAC,MAAM,EAAE;IACzB,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,QAAQ,KAAK,kBAAkB,CAAC;GAChG;EACD,SAAS,YAAY,CAAC,MAAM,EAAE;IAC5B,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,sBAAsB,CAAC;GAClD;EACD,SAAS,UAAU,CAAC,MAAM,EAAE;IAC1B,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,mBAAmB,CAAC;GAC/C;EACD,SAAS,MAAM,CAAC,MAAM,EAAE;IACtB,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,eAAe,CAAC;GAC3C;EACD,SAAS,MAAM,CAAC,MAAM,EAAE;IACtB,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,eAAe,CAAC;GAC3C;EACD,SAAS,QAAQ,CAAC,MAAM,EAAE;IACxB,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,iBAAiB,CAAC;GAC7C;EACD,SAAS,UAAU,CAAC,MAAM,EAAE;IAC1B,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,mBAAmB,CAAC;GAC/C;EACD,SAAS,YAAY,CAAC,MAAM,EAAE;IAC5B,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,sBAAsB,CAAC;GAClD;EACD,SAAS,UAAU,CAAC,MAAM,EAAE;IAC1B,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,mBAAmB,CAAC;GAC/C;;EAED,cAAc,GAAG,MAAM,CAAC;EACxB,iBAAiB,GAAG,SAAS,CAAC;EAC9B,sBAAsB,GAAG,cAAc,CAAC;EACxC,uBAAuB,GAAG,eAAe,CAAC;EAC1C,uBAAuB,GAAG,eAAe,CAAC;EAC1C,eAAe,GAAG,OAAO,CAAC;EAC1B,kBAAkB,GAAG,UAAU,CAAC;EAChC,gBAAgB,GAAG,QAAQ,CAAC;EAC5B,YAAY,GAAG,IAAI,CAAC;EACpB,YAAY,GAAG,IAAI,CAAC;EACpB,cAAc,GAAG,MAAM,CAAC;EACxB,gBAAgB,GAAG,QAAQ,CAAC;EAC5B,kBAAkB,GAAG,UAAU,CAAC;EAChC,gBAAgB,GAAG,QAAQ,CAAC;EAC5B,0BAA0B,GAAG,kBAAkB,CAAC;EAChD,mBAAmB,GAAG,WAAW,CAAC;EAClC,wBAAwB,GAAG,gBAAgB,CAAC;EAC5C,yBAAyB,GAAG,iBAAiB,CAAC;EAC9C,yBAAyB,GAAG,iBAAiB,CAAC;EAC9C,iBAAiB,GAAG,SAAS,CAAC;EAC9B,oBAAoB,GAAG,YAAY,CAAC;EACpC,kBAAkB,GAAG,UAAU,CAAC;EAChC,cAAc,GAAG,MAAM,CAAC;EACxB,cAAc,GAAG,MAAM,CAAC;EACxB,gBAAgB,GAAG,QAAQ,CAAC;EAC5B,kBAAkB,GAAG,UAAU,CAAC;EAChC,oBAAoB,GAAG,YAAY,CAAC;EACpC,kBAAkB,GAAG,UAAU,CAAC;KAC7B,GAAG,CAAC;GACN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvOD;AAEA,EAEO;IACL,cAAc,GAAGA,mBAAwC,CAAC;GAC3D;;;;ECND;;;;;;EAQA,IAAI,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,CAAC;EACzD,IAAI,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;EACrD,IAAI,gBAAgB,GAAG,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC;;EAE7D,SAAS,QAAQ,CAAC,GAAG,EAAE;GACtB,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE;IACtC,MAAM,IAAI,SAAS,CAAC,uDAAuD,CAAC,CAAC;IAC7E;;GAED,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;GACnB;;EAED,SAAS,eAAe,GAAG;GAC1B,IAAI;IACH,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;KACnB,OAAO,KAAK,CAAC;KACb;;;;;IAKD,IAAI,KAAK,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9B,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAChB,IAAI,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;KACjD,OAAO,KAAK,CAAC;KACb;;;IAGD,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;KAC5B,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;KACxC;IACD,IAAI,MAAM,GAAG,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;KAC/D,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;KAChB,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,YAAY,EAAE;KACrC,OAAO,KAAK,CAAC;KACb;;;IAGD,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,MAAM,EAAE;KAC1D,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;KACvB,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;MAChD,sBAAsB,EAAE;KACzB,OAAO,KAAK,CAAC;KACb;;IAED,OAAO,IAAI,CAAC;IACZ,CAAC,OAAO,GAAG,EAAE;;IAEb,OAAO,KAAK,CAAC;IACb;GACD;;EAED,gBAAc,GAAG,eAAe,EAAE,GAAG,MAAM,CAAC,MAAM,GAAG,UAAU,MAAM,EAAE,MAAM,EAAE;GAC9E,IAAI,IAAI,CAAC;GACT,IAAI,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;GAC1B,IAAI,OAAO,CAAC;;GAEZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC1C,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;;IAE5B,KAAK,IAAI,GAAG,IAAI,IAAI,EAAE;KACrB,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;MACnC,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;MACpB;KACD;;IAED,IAAI,qBAAqB,EAAE;KAC1B,OAAO,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;KACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;MACxC,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;OAC5C,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;OAClC;MACD;KACD;IACD;;GAED,OAAO,EAAE,CAAC;GACV,CAAC;;ECzFF;;;;;;;EASA,IAAI,oBAAoB,GAAG,8CAA8C,CAAC;;EAE1E,0BAAc,GAAG,oBAAoB,CAAC;;ECFtC,IAAI,YAAY,GAAG,WAAW,EAAE,CAAC;;AAEjC,EAA2C;IACzC,IAAIC,sBAAoB,GAAGC,sBAAqC,CAAC;IACjE,IAAI,kBAAkB,GAAG,EAAE,CAAC;IAC5B,IAAI,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;;IAE9D,YAAY,GAAG,SAAS,IAAI,EAAE;MAC5B,IAAI,OAAO,GAAG,WAAW,GAAG,IAAI,CAAC;MACjC,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE;QAClC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;OACxB;MACD,IAAI;;;;QAIF,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;OAC1B,CAAC,OAAO,CAAC,EAAE,EAAE;KACf,CAAC;GACH;;;;;;;;;;;;;EAaD,SAAS,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE;IAC5E,AAA2C;MACzC,KAAK,IAAI,YAAY,IAAI,SAAS,EAAE;QAClC,IAAI,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE;UAChC,IAAI,KAAK,CAAC;;;;UAIV,IAAI;;;YAGF,IAAI,OAAO,SAAS,CAAC,YAAY,CAAC,KAAK,UAAU,EAAE;cACjD,IAAI,GAAG,GAAG,KAAK;gBACb,CAAC,aAAa,IAAI,aAAa,IAAI,IAAI,GAAG,QAAQ,GAAG,SAAS,GAAG,YAAY,GAAG,gBAAgB;gBAChG,8EAA8E,GAAG,OAAO,SAAS,CAAC,YAAY,CAAC,GAAG,IAAI;eACvH,CAAC;cACF,GAAG,CAAC,IAAI,GAAG,qBAAqB,CAAC;cACjC,MAAM,GAAG,CAAC;aACX;YACD,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAED,sBAAoB,CAAC,CAAC;WAC5G,CAAC,OAAO,EAAE,EAAE;YACX,KAAK,GAAG,EAAE,CAAC;WACZ;UACD,IAAI,KAAK,IAAI,EAAE,KAAK,YAAY,KAAK,CAAC,EAAE;YACtC,YAAY;cACV,CAAC,aAAa,IAAI,aAAa,IAAI,0BAA0B;cAC7D,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,iCAAiC;cAClE,2DAA2D,GAAG,OAAO,KAAK,GAAG,IAAI;cACjF,iEAAiE;cACjE,gEAAgE;cAChE,iCAAiC;aAClC,CAAC;WACH;UACD,IAAI,KAAK,YAAY,KAAK,IAAI,EAAE,KAAK,CAAC,OAAO,IAAI,kBAAkB,CAAC,EAAE;;;YAGpE,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;;YAEzC,IAAI,KAAK,GAAG,QAAQ,GAAG,QAAQ,EAAE,GAAG,EAAE,CAAC;;YAEvC,YAAY;cACV,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,IAAI,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;aAChF,CAAC;WACH;SACF;OACF;KACF;GACF;;;;;;;EAOD,cAAc,CAAC,iBAAiB,GAAG,WAAW;IAC5C,AAA2C;MACzC,kBAAkB,GAAG,EAAE,CAAC;KACzB;IACF;;EAED,oBAAc,GAAG,cAAc,CAAC;;ECtFhC,IAAIE,KAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;EAC9D,IAAIC,cAAY,GAAG,WAAW,EAAE,CAAC;;AAEjC,EAA2C;IACzCA,cAAY,GAAG,SAAS,IAAI,EAAE;MAC5B,IAAI,OAAO,GAAG,WAAW,GAAG,IAAI,CAAC;MACjC,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE;QAClC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;OACxB;MACD,IAAI;;;;QAIF,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;OAC1B,CAAC,OAAO,CAAC,EAAE,EAAE;KACf,CAAC;GACH;;EAED,SAAS,4BAA4B,GAAG;IACtC,OAAO,IAAI,CAAC;GACb;;EAED,2BAAc,GAAG,SAAS,cAAc,EAAE,mBAAmB,EAAE;;IAE7D,IAAI,eAAe,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,QAAQ,CAAC;IACtE,IAAI,oBAAoB,GAAG,YAAY,CAAC;;;;;;;;;;;;;;;;IAgBxC,SAAS,aAAa,CAAC,aAAa,EAAE;MACpC,IAAI,UAAU,GAAG,aAAa,KAAK,eAAe,IAAI,aAAa,CAAC,eAAe,CAAC,IAAI,aAAa,CAAC,oBAAoB,CAAC,CAAC,CAAC;MAC7H,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE;QACpC,OAAO,UAAU,CAAC;OACnB;KACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAiDD,IAAI,SAAS,GAAG,eAAe,CAAC;;;;IAIhC,IAAI,cAAc,GAAG;MACnB,KAAK,EAAE,0BAA0B,CAAC,OAAO,CAAC;MAC1C,IAAI,EAAE,0BAA0B,CAAC,SAAS,CAAC;MAC3C,IAAI,EAAE,0BAA0B,CAAC,UAAU,CAAC;MAC5C,MAAM,EAAE,0BAA0B,CAAC,QAAQ,CAAC;MAC5C,MAAM,EAAE,0BAA0B,CAAC,QAAQ,CAAC;MAC5C,MAAM,EAAE,0BAA0B,CAAC,QAAQ,CAAC;MAC5C,MAAM,EAAE,0BAA0B,CAAC,QAAQ,CAAC;;MAE5C,GAAG,EAAE,oBAAoB,EAAE;MAC3B,OAAO,EAAE,wBAAwB;MACjC,OAAO,EAAE,wBAAwB,EAAE;MACnC,WAAW,EAAE,4BAA4B,EAAE;MAC3C,UAAU,EAAE,yBAAyB;MACrC,IAAI,EAAE,iBAAiB,EAAE;MACzB,QAAQ,EAAE,yBAAyB;MACnC,KAAK,EAAE,qBAAqB;MAC5B,SAAS,EAAE,sBAAsB;MACjC,KAAK,EAAE,sBAAsB;MAC7B,KAAK,EAAE,4BAA4B;KACpC,CAAC;;;;;;;IAOF,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;;MAEhB,IAAI,CAAC,KAAK,CAAC,EAAE;;;QAGX,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;OACnC,MAAM;;QAEL,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;OAC3B;KACF;;;;;;;;;;IAUD,SAAS,aAAa,CAAC,OAAO,EAAE;MAC9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;MACvB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;KACjB;;IAED,aAAa,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;;IAE1C,SAAS,0BAA0B,CAAC,QAAQ,EAAE;MAC5C,AAA2C;QACzC,IAAI,uBAAuB,GAAG,EAAE,CAAC;QACjC,IAAI,0BAA0B,GAAG,CAAC,CAAC;OACpC;MACD,SAAS,SAAS,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE;QAC7F,aAAa,GAAG,aAAa,IAAI,SAAS,CAAC;QAC3C,YAAY,GAAG,YAAY,IAAI,QAAQ,CAAC;;QAExC,IAAI,MAAM,KAAKH,sBAAoB,EAAE;UACnC,IAAI,mBAAmB,EAAE;;YAEvB,IAAI,GAAG,GAAG,IAAI,KAAK;cACjB,sFAAsF;cACtF,iDAAiD;cACjD,gDAAgD;aACjD,CAAC;YACF,GAAG,CAAC,IAAI,GAAG,qBAAqB,CAAC;YACjC,MAAM,GAAG,CAAC;WACX,MAAM,IAAI,CAAyC,OAAO,OAAO,KAAK,WAAW,EAAE;;YAElF,IAAI,QAAQ,GAAG,aAAa,GAAG,GAAG,GAAG,QAAQ,CAAC;YAC9C;cACE,CAAC,uBAAuB,CAAC,QAAQ,CAAC;;cAElC,0BAA0B,GAAG,CAAC;cAC9B;cACAG,cAAY;gBACV,wDAAwD;gBACxD,oBAAoB,GAAG,YAAY,GAAG,aAAa,GAAG,aAAa,IAAI,wBAAwB;gBAC/F,yDAAyD;gBACzD,gEAAgE;gBAChE,+DAA+D,GAAG,cAAc;eACjF,CAAC;cACF,uBAAuB,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;cACzC,0BAA0B,EAAE,CAAC;aAC9B;WACF;SACF;QACD,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE;UAC3B,IAAI,UAAU,EAAE;YACd,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;cAC5B,OAAO,IAAI,aAAa,CAAC,MAAM,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,0BAA0B,IAAI,MAAM,GAAG,aAAa,GAAG,6BAA6B,CAAC,CAAC,CAAC;aAC3J;YACD,OAAO,IAAI,aAAa,CAAC,MAAM,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,6BAA6B,IAAI,GAAG,GAAG,aAAa,GAAG,kCAAkC,CAAC,CAAC,CAAC;WAChK;UACD,OAAO,IAAI,CAAC;SACb,MAAM;UACL,OAAO,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;SACzE;OACF;;MAED,IAAI,gBAAgB,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;MACnD,gBAAgB,CAAC,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;;MAEzD,OAAO,gBAAgB,CAAC;KACzB;;IAED,SAAS,0BAA0B,CAAC,YAAY,EAAE;MAChD,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE;QAChF,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChC,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;QACtC,IAAI,QAAQ,KAAK,YAAY,EAAE;;;;UAI7B,IAAI,WAAW,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;;UAE5C,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,YAAY,IAAI,GAAG,GAAG,WAAW,GAAG,iBAAiB,GAAG,aAAa,GAAG,cAAc,CAAC,IAAI,GAAG,GAAG,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC;SAC/L;QACD,OAAO,IAAI,CAAC;OACb;MACD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;KAC7C;;IAED,SAAS,oBAAoB,GAAG;MAC9B,OAAO,0BAA0B,CAAC,4BAA4B,CAAC,CAAC;KACjE;;IAED,SAAS,wBAAwB,CAAC,WAAW,EAAE;MAC7C,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;QACxE,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE;UACrC,OAAO,IAAI,aAAa,CAAC,YAAY,GAAG,YAAY,GAAG,kBAAkB,GAAG,aAAa,GAAG,iDAAiD,CAAC,CAAC;SAChJ;QACD,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;UAC7B,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;UACtC,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,YAAY,IAAI,GAAG,GAAG,QAAQ,GAAG,iBAAiB,GAAG,aAAa,GAAG,uBAAuB,CAAC,CAAC,CAAC;SACvK;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;UACzC,IAAI,KAAK,GAAG,WAAW,CAAC,SAAS,EAAE,CAAC,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,EAAEH,sBAAoB,CAAC,CAAC;UACnH,IAAI,KAAK,YAAY,KAAK,EAAE;YAC1B,OAAO,KAAK,CAAC;WACd;SACF;QACD,OAAO,IAAI,CAAC;OACb;MACD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;KAC7C;;IAED,SAAS,wBAAwB,GAAG;MAClC,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;QACxE,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;UAC9B,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;UACtC,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,YAAY,IAAI,GAAG,GAAG,QAAQ,GAAG,iBAAiB,GAAG,aAAa,GAAG,oCAAoC,CAAC,CAAC,CAAC;SACpL;QACD,OAAO,IAAI,CAAC;OACb;MACD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;KAC7C;;IAED,SAAS,4BAA4B,GAAG;MACtC,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;QACxE,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChC,IAAI,CAACI,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE;UAC1C,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;UACtC,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,YAAY,IAAI,GAAG,GAAG,QAAQ,GAAG,iBAAiB,GAAG,aAAa,GAAG,yCAAyC,CAAC,CAAC,CAAC;SACzL;QACD,OAAO,IAAI,CAAC;OACb;MACD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;KAC7C;;IAED,SAAS,yBAAyB,CAAC,aAAa,EAAE;MAChD,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;QACxE,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,YAAY,aAAa,CAAC,EAAE;UAC/C,IAAI,iBAAiB,GAAG,aAAa,CAAC,IAAI,IAAI,SAAS,CAAC;UACxD,IAAI,eAAe,GAAG,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;UACpD,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,YAAY,IAAI,GAAG,GAAG,eAAe,GAAG,iBAAiB,GAAG,aAAa,GAAG,cAAc,CAAC,IAAI,eAAe,GAAG,iBAAiB,GAAG,IAAI,CAAC,CAAC,CAAC;SACpN;QACD,OAAO,IAAI,CAAC;OACb;MACD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;KAC7C;;IAED,SAAS,qBAAqB,CAAC,cAAc,EAAE;MAC7C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;QAClC,AAA2C;UACzC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YACxBD,cAAY;cACV,8DAA8D,GAAG,SAAS,CAAC,MAAM,GAAG,cAAc;cAClG,0EAA0E;aAC3E,CAAC;WACH,MAAM;YACLA,cAAY,CAAC,wDAAwD,CAAC,CAAC;WACxE;SACF;QACD,OAAO,4BAA4B,CAAC;OACrC;;MAED,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;QACxE,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;UAC9C,IAAI,EAAE,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE;YACpC,OAAO,IAAI,CAAC;WACb;SACF;;QAED,IAAI,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,SAAS,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE;UAC9E,IAAI,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;UACjC,IAAI,IAAI,KAAK,QAAQ,EAAE;YACrB,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;WACtB;UACD,OAAO,KAAK,CAAC;SACd,CAAC,CAAC;QACH,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,IAAI,eAAe,GAAG,aAAa,GAAG,qBAAqB,GAAG,YAAY,GAAG,GAAG,CAAC,CAAC,CAAC;OACpM;MACD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;KAC7C;;IAED,SAAS,yBAAyB,CAAC,WAAW,EAAE;MAC9C,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;QACxE,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE;UACrC,OAAO,IAAI,aAAa,CAAC,YAAY,GAAG,YAAY,GAAG,kBAAkB,GAAG,aAAa,GAAG,kDAAkD,CAAC,CAAC;SACjJ;QACD,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChC,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;QACtC,IAAI,QAAQ,KAAK,QAAQ,EAAE;UACzB,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,YAAY,IAAI,GAAG,GAAG,QAAQ,GAAG,iBAAiB,GAAG,aAAa,GAAG,wBAAwB,CAAC,CAAC,CAAC;SACxK;QACD,KAAK,IAAI,GAAG,IAAI,SAAS,EAAE;UACzB,IAAID,KAAG,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE;YACvB,IAAI,KAAK,GAAG,WAAW,CAAC,SAAS,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,GAAG,GAAG,GAAG,GAAG,EAAEF,sBAAoB,CAAC,CAAC;YACjH,IAAI,KAAK,YAAY,KAAK,EAAE;cAC1B,OAAO,KAAK,CAAC;aACd;WACF;SACF;QACD,OAAO,IAAI,CAAC;OACb;MACD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;KAC7C;;IAED,SAAS,sBAAsB,CAAC,mBAAmB,EAAE;MACnD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE;QACvC,CAAwCG,cAAY,CAAC,wEAAwE,CAAC,CAAS,CAAC;QACxI,OAAO,4BAA4B,CAAC;OACrC;;MAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACnD,IAAI,OAAO,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;UACjCA,cAAY;YACV,oFAAoF;YACpF,WAAW,GAAG,wBAAwB,CAAC,OAAO,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,GAAG;WACzE,CAAC;UACF,OAAO,4BAA4B,CAAC;SACrC;OACF;;MAED,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;QACxE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;UACnD,IAAI,OAAO,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;UACrC,IAAI,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAEH,sBAAoB,CAAC,IAAI,IAAI,EAAE;YACjG,OAAO,IAAI,CAAC;WACb;SACF;;QAED,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,gBAAgB,IAAI,GAAG,GAAG,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC;OACzH;MACD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;KAC7C;;IAED,SAAS,iBAAiB,GAAG;MAC3B,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;QACxE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE;UAC5B,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,gBAAgB,IAAI,GAAG,GAAG,aAAa,GAAG,0BAA0B,CAAC,CAAC,CAAC;SAC/I;QACD,OAAO,IAAI,CAAC;OACb;MACD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;KAC7C;;IAED,SAAS,sBAAsB,CAAC,UAAU,EAAE;MAC1C,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;QACxE,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChC,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;QACtC,IAAI,QAAQ,KAAK,QAAQ,EAAE;UACzB,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,aAAa,GAAG,QAAQ,GAAG,IAAI,IAAI,eAAe,GAAG,aAAa,GAAG,uBAAuB,CAAC,CAAC,CAAC;SACvK;QACD,KAAK,IAAI,GAAG,IAAI,UAAU,EAAE;UAC1B,IAAI,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;UAC9B,IAAI,CAAC,OAAO,EAAE;YACZ,SAAS;WACV;UACD,IAAI,KAAK,GAAG,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,GAAG,GAAG,GAAG,GAAG,EAAEA,sBAAoB,CAAC,CAAC;UAC7G,IAAI,KAAK,EAAE;YACT,OAAO,KAAK,CAAC;WACd;SACF;QACD,OAAO,IAAI,CAAC;OACb;MACD,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;KAC7C;;IAED,SAAS,4BAA4B,CAAC,UAAU,EAAE;MAChD,SAAS,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE;QACxE,IAAI,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChC,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;QACtC,IAAI,QAAQ,KAAK,QAAQ,EAAE;UACzB,OAAO,IAAI,aAAa,CAAC,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,aAAa,GAAG,QAAQ,GAAG,IAAI,IAAI,eAAe,GAAG,aAAa,GAAG,uBAAuB,CAAC,CAAC,CAAC;SACvK;;;QAGD,IAAI,OAAO,GAAGK,YAAM,CAAC,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC,CAAC;QACtD,KAAK,IAAI,GAAG,IAAI,OAAO,EAAE;UACvB,IAAI,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;UAC9B,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,IAAI,aAAa;cACtB,UAAU,GAAG,QAAQ,GAAG,IAAI,GAAG,YAAY,GAAG,SAAS,GAAG,GAAG,GAAG,iBAAiB,GAAG,aAAa,GAAG,IAAI;cACxG,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;cAC9D,gBAAgB,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC;aACxE,CAAC;WACH;UACD,IAAI,KAAK,GAAG,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,GAAG,GAAG,GAAG,GAAG,EAAEL,sBAAoB,CAAC,CAAC;UAC7G,IAAI,KAAK,EAAE;YACT,OAAO,KAAK,CAAC;WACd;SACF;QACD,OAAO,IAAI,CAAC;OACb;;MAED,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;KAC7C;;IAED,SAAS,MAAM,CAAC,SAAS,EAAE;MACzB,QAAQ,OAAO,SAAS;QACtB,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ,CAAC;QACd,KAAK,WAAW;UACd,OAAO,IAAI,CAAC;QACd,KAAK,SAAS;UACZ,OAAO,CAAC,SAAS,CAAC;QACpB,KAAK,QAAQ;UACX,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;YAC5B,OAAO,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;WAChC;UACD,IAAI,SAAS,KAAK,IAAI,IAAI,cAAc,CAAC,SAAS,CAAC,EAAE;YACnD,OAAO,IAAI,CAAC;WACb;;UAED,IAAI,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;UAC1C,IAAI,UAAU,EAAE;YACd,IAAI,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1C,IAAI,IAAI,CAAC;YACT,IAAI,UAAU,KAAK,SAAS,CAAC,OAAO,EAAE;cACpC,OAAO,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE;gBACrC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;kBACvB,OAAO,KAAK,CAAC;iBACd;eACF;aACF,MAAM;;cAEL,OAAO,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE;gBACrC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACvB,IAAI,KAAK,EAAE;kBACT,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;oBACrB,OAAO,KAAK,CAAC;mBACd;iBACF;eACF;aACF;WACF,MAAM;YACL,OAAO,KAAK,CAAC;WACd;;UAED,OAAO,IAAI,CAAC;QACd;UACE,OAAO,KAAK,CAAC;OAChB;KACF;;IAED,SAAS,QAAQ,CAAC,QAAQ,EAAE,SAAS,EAAE;;MAErC,IAAI,QAAQ,KAAK,QAAQ,EAAE;QACzB,OAAO,IAAI,CAAC;OACb;;;MAGD,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,KAAK,CAAC;OACd;;;MAGD,IAAI,SAAS,CAAC,eAAe,CAAC,KAAK,QAAQ,EAAE;QAC3C,OAAO,IAAI,CAAC;OACb;;;MAGD,IAAI,OAAO,MAAM,KAAK,UAAU,IAAI,SAAS,YAAY,MAAM,EAAE;QAC/D,OAAO,IAAI,CAAC;OACb;;MAED,OAAO,KAAK,CAAC;KACd;;;IAGD,SAAS,WAAW,CAAC,SAAS,EAAE;MAC9B,IAAI,QAAQ,GAAG,OAAO,SAAS,CAAC;MAChC,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;QAC5B,OAAO,OAAO,CAAC;OAChB;MACD,IAAI,SAAS,YAAY,MAAM,EAAE;;;;QAI/B,OAAO,QAAQ,CAAC;OACjB;MACD,IAAI,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE;QACjC,OAAO,QAAQ,CAAC;OACjB;MACD,OAAO,QAAQ,CAAC;KACjB;;;;IAID,SAAS,cAAc,CAAC,SAAS,EAAE;MACjC,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,KAAK,IAAI,EAAE;QAC1D,OAAO,EAAE,GAAG,SAAS,CAAC;OACvB;MACD,IAAI,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;MACtC,IAAI,QAAQ,KAAK,QAAQ,EAAE;QACzB,IAAI,SAAS,YAAY,IAAI,EAAE;UAC7B,OAAO,MAAM,CAAC;SACf,MAAM,IAAI,SAAS,YAAY,MAAM,EAAE;UACtC,OAAO,QAAQ,CAAC;SACjB;OACF;MACD,OAAO,QAAQ,CAAC;KACjB;;;;IAID,SAAS,wBAAwB,CAAC,KAAK,EAAE;MACvC,IAAI,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;MACjC,QAAQ,IAAI;QACV,KAAK,OAAO,CAAC;QACb,KAAK,QAAQ;UACX,OAAO,KAAK,GAAG,IAAI,CAAC;QACtB,KAAK,SAAS,CAAC;QACf,KAAK,MAAM,CAAC;QACZ,KAAK,QAAQ;UACX,OAAO,IAAI,GAAG,IAAI,CAAC;QACrB;UACE,OAAO,IAAI,CAAC;OACf;KACF;;;IAGD,SAAS,YAAY,CAAC,SAAS,EAAE;MAC/B,IAAI,CAAC,SAAS,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE;QACzD,OAAO,SAAS,CAAC;OAClB;MACD,OAAO,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC;KACnC;;IAED,cAAc,CAAC,cAAc,GAAGM,gBAAc,CAAC;IAC/C,cAAc,CAAC,iBAAiB,GAAGA,gBAAc,CAAC,iBAAiB,CAAC;IACpE,cAAc,CAAC,SAAS,GAAG,cAAc,CAAC;;IAE1C,OAAO,cAAc,CAAC;GACvB,CAAC;;;EC9kBF;;;;;;;AAOA,EAA2C;IACzC,IAAI,OAAO,GAAGL,OAAmB,CAAC;;;;IAIlC,IAAI,mBAAmB,GAAG,IAAI,CAAC;IAC/B,cAAc,GAAGF,uBAAoC,CAAC,OAAO,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;GAC/F,AAIA;;;EClBc,SAAS,QAAQ,GAAG;EACnC,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,UAAU,MAAM,EAAE;EAChD,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EAC/C,MAAM,IAAI,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;;EAEhC,MAAM,KAAK,IAAI,GAAG,IAAI,MAAM,EAAE;EAC9B,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;EAC/D,UAAU,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;EACpC,SAAS;EACT,OAAO;EACP,KAAK;;EAEL,IAAI,OAAO,MAAM,CAAC;EAClB,GAAG,CAAC;;EAEJ,EAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;EACzC;;EChBA,SAAS,UAAU,CAAC,QAAQ,EAAE;EAC9B,EAAE,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;EACpC,CAAC;;EAED;EACA,SAAS,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE;EAChC,EAAE,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;EACzE,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;EACtB,GAAG;;EAEH,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;EACb,CAAC;;EAED;EACA,SAAS,eAAe,CAAC,EAAE,EAAE;EAC7B,EAAE,IAAI,IAAI,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;;EAEpF,EAAE,IAAI,OAAO,GAAG,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;EAC1C,EAAE,IAAI,SAAS,GAAG,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;;EAEhD,EAAE,IAAI,OAAO,GAAG,EAAE,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;EACrC,EAAE,IAAI,SAAS,GAAG,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;EAC3C,EAAE,IAAI,UAAU,GAAG,OAAO,IAAI,SAAS,CAAC;;EAExC,EAAE,IAAI,EAAE,IAAI,UAAU,CAAC,EAAE,CAAC,EAAE;EAC5B;EACA,IAAI,SAAS,GAAG,OAAO,CAAC;EACxB,GAAG,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE;EAC7B;EACA,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC;EACpB,IAAI,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;EAC1C,GAAG;;EAEH,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,GAAG,CAAC;;EAEpC,EAAE,IAAI,gBAAgB,GAAG,KAAK,CAAC,CAAC;EAChC,EAAE,IAAI,SAAS,CAAC,MAAM,EAAE;EACxB,IAAI,IAAI,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;EAC/C,IAAI,gBAAgB,GAAG,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;EACpE,GAAG,MAAM;EACT,IAAI,gBAAgB,GAAG,KAAK,CAAC;EAC7B,GAAG;;EAEH,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;EACb,EAAE,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;EAC9C,IAAI,IAAI,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;;EAE5B,IAAI,IAAI,IAAI,KAAK,GAAG,EAAE;EACtB,MAAM,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;EAC9B,KAAK,MAAM,IAAI,IAAI,KAAK,IAAI,EAAE;EAC9B,MAAM,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;EAC9B,MAAM,EAAE,EAAE,CAAC;EACX,KAAK,MAAM,IAAI,EAAE,EAAE;EACnB,MAAM,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;EAC9B,MAAM,EAAE,EAAE,CAAC;EACX,KAAK;EACL,GAAG;;EAEH,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE;EACpC,IAAI,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;EAC5B,GAAG,IAAI,UAAU,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;;EAEhH,EAAE,IAAI,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;;EAEnC,EAAE,IAAI,gBAAgB,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,MAAM,IAAI,GAAG,CAAC;;EAEnE,EAAE,OAAO,MAAM,CAAC;EAChB,CAAC;;ECnED,IAAI,OAAO,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,GAAG,UAAU,GAAG,EAAE,EAAE,OAAO,OAAO,GAAG,CAAC,EAAE,GAAG,UAAU,GAAG,EAAE,EAAE,OAAO,GAAG,IAAI,OAAO,MAAM,KAAK,UAAU,IAAI,GAAG,CAAC,WAAW,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,CAAC,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,CAAC,EAAE,CAAC;;EAE7Q,SAAS,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE;EAC1B,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,IAAI,CAAC;;EAE3B,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE,OAAO,KAAK,CAAC;;EAE3C,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;EACxB,IAAI,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,KAAK,EAAE;EACvF,MAAM,OAAO,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;EACxC,KAAK,CAAC,CAAC;EACP,GAAG;;EAEH,EAAE,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,WAAW,GAAG,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;EAClE,EAAE,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,WAAW,GAAG,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;;EAElE,EAAE,IAAI,KAAK,KAAK,KAAK,EAAE,OAAO,KAAK,CAAC;;EAEpC,EAAE,IAAI,KAAK,KAAK,QAAQ,EAAE;EAC1B,IAAI,IAAI,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;EAC7B,IAAI,IAAI,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;;EAE7B,IAAI,IAAI,MAAM,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;;EAExE,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;EAC/B,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;EAE/B,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,OAAO,KAAK,CAAC;;EAEpD,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE;EACtC,MAAM,OAAO,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;EACxC,KAAK,CAAC,CAAC;EACP,GAAG;;EAEH,EAAE,OAAO,KAAK,CAAC;EACf,CAAC;;EClCD,SAAS,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE;EACrC,EAAE,AAAmB;EACrB,IAAI,IAAI,SAAS,EAAE;EACnB,MAAM,OAAO;EACb,KAAK;;EAEL,IAAI,IAAI,IAAI,GAAG,WAAW,GAAG,OAAO,CAAC;;EAErC,IAAI,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE;EACxC,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;EACzB,KAAK;;EAEL,IAAI,IAAI;EACR,MAAM,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;EACxB,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE;EAClB,GAAG;EACH,CAAC;;EChBD,IAAI,MAAM,GAAG,kBAAkB,CAAC;EAChC,SAAS,SAAS,CAAC,SAAS,EAAE,OAAO,EAAE;EACvC,EAAE,IAAI,SAAS,EAAE;EACjB,IAAI,OAAO;EACX,GAAG;;EAEH,EAAE,AAEO;EACT,IAAI,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,IAAI,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;EACrD,GAAG;EACH,CAAC;;ECND,SAAS,eAAe,CAAC,IAAI,EAAE;EAC/B,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC;EACpD,CAAC;EACD,SAAS,iBAAiB,CAAC,IAAI,EAAE;EACjC,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;EACxD,CAAC;EACD,SAAS,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE;EACnC,EAAE,OAAO,IAAI,MAAM,CAAC,GAAG,GAAG,MAAM,GAAG,eAAe,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;EACpE,CAAC;EACD,SAAS,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE;EACrC,EAAE,OAAO,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;EACvE,CAAC;EACD,SAAS,kBAAkB,CAAC,IAAI,EAAE;EAClC,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;EACzE,CAAC;EACD,SAAS,SAAS,CAAC,IAAI,EAAE;EACzB,EAAE,IAAI,QAAQ,GAAG,IAAI,IAAI,GAAG,CAAC;EAC7B,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC;EAClB,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC;EAChB,EAAE,IAAI,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;;EAExC,EAAE,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE;EACxB,IAAI,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;EACtC,IAAI,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;EAC7C,GAAG;;EAEH,EAAE,IAAI,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;;EAE1C,EAAE,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE;EAC1B,IAAI,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;EAC1C,IAAI,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;EAC/C,GAAG;;EAEH,EAAE,OAAO;EACT,IAAI,QAAQ,EAAE,QAAQ;EACtB,IAAI,MAAM,EAAE,MAAM,KAAK,GAAG,GAAG,EAAE,GAAG,MAAM;EACxC,IAAI,IAAI,EAAE,IAAI,KAAK,GAAG,GAAG,EAAE,GAAG,IAAI;EAClC,GAAG,CAAC;EACJ,CAAC;EACD,SAAS,UAAU,CAAC,QAAQ,EAAE;EAC9B,EAAE,IAAI,QAAQ,GAAG,QAAQ,CAAC,QAAQ;EAClC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM;EAC9B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;EAC3B,EAAE,IAAI,IAAI,GAAG,QAAQ,IAAI,GAAG,CAAC;EAC7B,EAAE,IAAI,MAAM,IAAI,MAAM,KAAK,GAAG,EAAE,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC;EACzF,EAAE,IAAI,IAAI,IAAI,IAAI,KAAK,GAAG,EAAE,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC;EAC/E,EAAE,OAAO,IAAI,CAAC;EACd,CAAC;;EAED,SAAS,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,eAAe,EAAE;EAC3D,EAAE,IAAI,QAAQ,CAAC;;EAEf,EAAE,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;EAChC;EACA,IAAI,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;EAC/B,IAAI,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;EAC3B,GAAG,MAAM;EACT;EACA,IAAI,QAAQ,GAAG,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;EAClC,IAAI,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS,EAAE,QAAQ,CAAC,QAAQ,GAAG,EAAE,CAAC;;EAEhE,IAAI,IAAI,QAAQ,CAAC,MAAM,EAAE;EACzB,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,QAAQ,CAAC,MAAM,GAAG,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC;EACrF,KAAK,MAAM;EACX,MAAM,QAAQ,CAAC,MAAM,GAAG,EAAE,CAAC;EAC3B,KAAK;;EAEL,IAAI,IAAI,QAAQ,CAAC,IAAI,EAAE;EACvB,MAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,QAAQ,CAAC,IAAI,GAAG,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC;EAC/E,KAAK,MAAM;EACX,MAAM,QAAQ,CAAC,IAAI,GAAG,EAAE,CAAC;EACzB,KAAK;;EAEL,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,EAAE,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;EACpF,GAAG;;EAEH,EAAE,IAAI;EACN,IAAI,QAAQ,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;EACrD,GAAG,CAAC,OAAO,CAAC,EAAE;EACd,IAAI,IAAI,CAAC,YAAY,QAAQ,EAAE;EAC/B,MAAM,MAAM,IAAI,QAAQ,CAAC,YAAY,GAAG,QAAQ,CAAC,QAAQ,GAAG,0BAA0B,GAAG,uDAAuD,CAAC,CAAC;EAClJ,KAAK,MAAM;EACX,MAAM,MAAM,CAAC,CAAC;EACd,KAAK;EACL,GAAG;;EAEH,EAAE,IAAI,GAAG,EAAE,QAAQ,CAAC,GAAG,GAAG,GAAG,CAAC;;EAE9B,EAAE,IAAI,eAAe,EAAE;EACvB;EACA,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;EAC5B,MAAM,QAAQ,CAAC,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC;EACnD,KAAK,MAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;EACpD,MAAM,QAAQ,CAAC,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;EACvF,KAAK;EACL,GAAG,MAAM;EACT;EACA,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;EAC5B,MAAM,QAAQ,CAAC,QAAQ,GAAG,GAAG,CAAC;EAC9B,KAAK;EACL,GAAG;;EAEH,EAAE,OAAO,QAAQ,CAAC;EAClB,CAAC;EACD,SAAS,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE;EACjC,EAAE,OAAO,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;EACpI,CAAC;;EAED,SAAS,uBAAuB,GAAG;EACnC,EAAE,IAAI,MAAM,GAAG,IAAI,CAAC;;EAEpB,EAAE,SAAS,SAAS,CAAC,UAAU,EAAE;EACjC,IAAI,AAAuC,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,EAAE,8CAA8C,CAAC,CAAC,AAAQ,CAAC;EAC7H,IAAI,MAAM,GAAG,UAAU,CAAC;EACxB,IAAI,OAAO,YAAY;EACvB,MAAM,IAAI,MAAM,KAAK,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;EAC/C,KAAK,CAAC;EACN,GAAG;;EAEH,EAAE,SAAS,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,mBAAmB,EAAE,QAAQ,EAAE;EAChF;EACA;EACA;EACA,IAAI,IAAI,MAAM,IAAI,IAAI,EAAE;EACxB,MAAM,IAAI,MAAM,GAAG,OAAO,MAAM,KAAK,UAAU,GAAG,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC;;EAEpF,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;EACtC,QAAQ,IAAI,OAAO,mBAAmB,KAAK,UAAU,EAAE;EACvD,UAAU,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;EAChD,SAAS,MAAM;EACf,UAAU,AAAuC,CAAC,OAAO,CAAC,KAAK,EAAE,iFAAiF,CAAC,CAAC,AAAQ,CAAC;EAC7J,UAAU,QAAQ,CAAC,IAAI,CAAC,CAAC;EACzB,SAAS;EACT,OAAO,MAAM;EACb;EACA,QAAQ,QAAQ,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC;EACnC,OAAO;EACP,KAAK,MAAM;EACX,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;EACrB,KAAK;EACL,GAAG;;EAEH,EAAE,IAAI,SAAS,GAAG,EAAE,CAAC;;EAErB,EAAE,SAAS,cAAc,CAAC,EAAE,EAAE;EAC9B,IAAI,IAAI,QAAQ,GAAG,IAAI,CAAC;;EAExB,IAAI,SAAS,QAAQ,GAAG;EACxB,MAAM,IAAI,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC;EAChD,KAAK;;EAEL,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;EAC7B,IAAI,OAAO,YAAY;EACvB,MAAM,QAAQ,GAAG,KAAK,CAAC;EACvB,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE;EACnD,QAAQ,OAAO,IAAI,KAAK,QAAQ,CAAC;EACjC,OAAO,CAAC,CAAC;EACT,KAAK,CAAC;EACN,GAAG;;EAEH,EAAE,SAAS,eAAe,GAAG;EAC7B,IAAI,KAAK,IAAI,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,EAAE,IAAI,EAAE,EAAE;EAC7F,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;EACnC,KAAK;;EAEL,IAAI,SAAS,CAAC,OAAO,CAAC,UAAU,QAAQ,EAAE;EAC1C,MAAM,OAAO,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;EAC1C,KAAK,CAAC,CAAC;EACP,GAAG;;EAEH,EAAE,OAAO;EACT,IAAI,SAAS,EAAE,SAAS;EACxB,IAAI,mBAAmB,EAAE,mBAAmB;EAC5C,IAAI,cAAc,EAAE,cAAc;EAClC,IAAI,eAAe,EAAE,eAAe;EACpC,GAAG,CAAC;EACJ,CAAC;;EAED,IAAI,SAAS,GAAG,CAAC,EAAE,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;EACtG,SAAS,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE;EAC5C,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;EACpC,CAAC;EACD;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA,SAAS,eAAe,GAAG;EAC3B,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC;EACtC,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,KAAK,CAAC;EACrM,EAAE,OAAO,MAAM,CAAC,OAAO,IAAI,WAAW,IAAI,MAAM,CAAC,OAAO,CAAC;EACzD,CAAC;EACD;EACA;EACA;EACA;;EAEA,SAAS,4BAA4B,GAAG;EACxC,EAAE,OAAO,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;EAC9D,CAAC;EACD;EACA;EACA;;EAEA,SAAS,gCAAgC,GAAG;EAC5C,EAAE,OAAO,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;EAC9D,CAAC;EACD;EACA;EACA;EACA;EACA;;EAEA,SAAS,yBAAyB,CAAC,KAAK,EAAE;EAC1C,EAAE,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;EAC3E,CAAC;;EAED,IAAI,aAAa,GAAG,UAAU,CAAC;EAC/B,IAAI,eAAe,GAAG,YAAY,CAAC;;EAEnC,SAAS,eAAe,GAAG;EAC3B,EAAE,IAAI;EACN,IAAI,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;EACtC,GAAG,CAAC,OAAO,CAAC,EAAE;EACd;EACA;EACA,IAAI,OAAO,EAAE,CAAC;EACd,GAAG;EACH,CAAC;EACD;EACA;EACA;EACA;;;EAGA,SAAS,oBAAoB,CAAC,KAAK,EAAE;EACrC,EAAE,IAAI,KAAK,KAAK,KAAK,CAAC,EAAE;EACxB,IAAI,KAAK,GAAG,EAAE,CAAC;EACf,GAAG;;EAEH,EAAE,CAAC,SAAS,GAAG,AAAuC,CAAC,SAAS,CAAC,KAAK,EAAE,6BAA6B,CAAC,CAAC,AAAkB,GAAG,KAAK,CAAC,CAAC;EACnI,EAAE,IAAI,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC;EACrC,EAAE,IAAI,aAAa,GAAG,eAAe,EAAE,CAAC;EACxC,EAAE,IAAI,uBAAuB,GAAG,CAAC,4BAA4B,EAAE,CAAC;EAChE,EAAE,IAAI,MAAM,GAAG,KAAK;EACpB,MAAM,mBAAmB,GAAG,MAAM,CAAC,YAAY;EAC/C,MAAM,YAAY,GAAG,mBAAmB,KAAK,KAAK,CAAC,GAAG,KAAK,GAAG,mBAAmB;EACjF,MAAM,qBAAqB,GAAG,MAAM,CAAC,mBAAmB;EACxD,MAAM,mBAAmB,GAAG,qBAAqB,KAAK,KAAK,CAAC,GAAG,eAAe,GAAG,qBAAqB;EACtG,MAAM,gBAAgB,GAAG,MAAM,CAAC,SAAS;EACzC,MAAM,SAAS,GAAG,gBAAgB,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAAC;EACrE,EAAE,IAAI,QAAQ,GAAG,KAAK,CAAC,QAAQ,GAAG,kBAAkB,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC;;EAE3F,EAAE,SAAS,cAAc,CAAC,YAAY,EAAE;EACxC,IAAI,IAAI,IAAI,GAAG,YAAY,IAAI,EAAE;EACjC,QAAQ,GAAG,GAAG,IAAI,CAAC,GAAG;EACtB,QAAQ,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;;EAE3B,IAAI,IAAI,gBAAgB,GAAG,MAAM,CAAC,QAAQ;EAC1C,QAAQ,QAAQ,GAAG,gBAAgB,CAAC,QAAQ;EAC5C,QAAQ,MAAM,GAAG,gBAAgB,CAAC,MAAM;EACxC,QAAQ,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC;EACrC,IAAI,IAAI,IAAI,GAAG,QAAQ,GAAG,MAAM,GAAG,IAAI,CAAC;EACxC,IAAI,AAAuC,CAAC,OAAO,CAAC,CAAC,QAAQ,IAAI,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,+EAA+E,GAAG,oCAAoC,GAAG,IAAI,GAAG,mBAAmB,GAAG,QAAQ,GAAG,IAAI,CAAC,CAAC,AAAQ,CAAC;EAC9Q,IAAI,IAAI,QAAQ,EAAE,IAAI,GAAG,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;EACvD,IAAI,OAAO,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;EAC5C,GAAG;;EAEH,EAAE,SAAS,SAAS,GAAG;EACvB,IAAI,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;EAC3D,GAAG;;EAEH,EAAE,IAAI,iBAAiB,GAAG,uBAAuB,EAAE,CAAC;;EAEpD,EAAE,SAAS,QAAQ,CAAC,SAAS,EAAE;EAC/B,IAAI,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;;EAEjC,IAAI,OAAO,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC;EAC1C,IAAI,iBAAiB,CAAC,eAAe,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;EACxE,GAAG;;EAEH,EAAE,SAAS,cAAc,CAAC,KAAK,EAAE;EACjC;EACA,IAAI,IAAI,yBAAyB,CAAC,KAAK,CAAC,EAAE,OAAO;EACjD,IAAI,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;EAC3C,GAAG;;EAEH,EAAE,SAAS,gBAAgB,GAAG;EAC9B,IAAI,SAAS,CAAC,cAAc,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;EACjD,GAAG;;EAEH,EAAE,IAAI,YAAY,GAAG,KAAK,CAAC;;EAE3B,EAAE,SAAS,SAAS,CAAC,QAAQ,EAAE;EAC/B,IAAI,IAAI,YAAY,EAAE;EACtB,MAAM,YAAY,GAAG,KAAK,CAAC;EAC3B,MAAM,QAAQ,EAAE,CAAC;EACjB,KAAK,MAAM;EACX,MAAM,IAAI,MAAM,GAAG,KAAK,CAAC;EACzB,MAAM,iBAAiB,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,mBAAmB,EAAE,UAAU,EAAE,EAAE;EACjG,QAAQ,IAAI,EAAE,EAAE;EAChB,UAAU,QAAQ,CAAC;EACnB,YAAY,MAAM,EAAE,MAAM;EAC1B,YAAY,QAAQ,EAAE,QAAQ;EAC9B,WAAW,CAAC,CAAC;EACb,SAAS,MAAM;EACf,UAAU,SAAS,CAAC,QAAQ,CAAC,CAAC;EAC9B,SAAS;EACT,OAAO,CAAC,CAAC;EACT,KAAK;EACL,GAAG;;EAEH,EAAE,SAAS,SAAS,CAAC,YAAY,EAAE;EACnC,IAAI,IAAI,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC;EACtC;EACA;;EAEA,IAAI,IAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;EAClD,IAAI,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC;EACpC,IAAI,IAAI,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;EACtD,IAAI,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC;EACxC,IAAI,IAAI,KAAK,GAAG,OAAO,GAAG,SAAS,CAAC;;EAEpC,IAAI,IAAI,KAAK,EAAE;EACf,MAAM,YAAY,GAAG,IAAI,CAAC;EAC1B,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;EAChB,KAAK;EACL,GAAG;;EAEH,EAAE,IAAI,eAAe,GAAG,cAAc,CAAC,eAAe,EAAE,CAAC,CAAC;EAC1D,EAAE,IAAI,OAAO,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;;EAEtC,EAAE,SAAS,UAAU,CAAC,QAAQ,EAAE;EAChC,IAAI,OAAO,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;EAC3C,GAAG;;EAEH,EAAE,SAAS,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE;EAC7B,IAAI,AAAuC,CAAC,OAAO,CAAC,EAAE,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,CAAC,EAAE,uEAAuE,GAAG,0EAA0E,CAAC,CAAC,AAAQ,CAAC;EACnS,IAAI,IAAI,MAAM,GAAG,MAAM,CAAC;EACxB,IAAI,IAAI,QAAQ,GAAG,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;EAC9E,IAAI,iBAAiB,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,mBAAmB,EAAE,UAAU,EAAE,EAAE;EAC/F,MAAM,IAAI,CAAC,EAAE,EAAE,OAAO;EACtB,MAAM,IAAI,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;EACtC,MAAM,IAAI,GAAG,GAAG,QAAQ,CAAC,GAAG;EAC5B,UAAU,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;;EAEjC,MAAM,IAAI,aAAa,EAAE;EACzB,QAAQ,aAAa,CAAC,SAAS,CAAC;EAChC,UAAU,GAAG,EAAE,GAAG;EAClB,UAAU,KAAK,EAAE,KAAK;EACtB,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;;EAEvB,QAAQ,IAAI,YAAY,EAAE;EAC1B,UAAU,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;EACtC,SAAS,MAAM;EACf,UAAU,IAAI,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;EAChE,UAAU,IAAI,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC;EAChF,UAAU,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;EACtC,UAAU,OAAO,GAAG,QAAQ,CAAC;EAC7B,UAAU,QAAQ,CAAC;EACnB,YAAY,MAAM,EAAE,MAAM;EAC1B,YAAY,QAAQ,EAAE,QAAQ;EAC9B,WAAW,CAAC,CAAC;EACb,SAAS;EACT,OAAO,MAAM;EACb,QAAQ,AAAuC,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,iFAAiF,CAAC,CAAC,AAAQ,CAAC;EACzK,QAAQ,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;EACpC,OAAO;EACP,KAAK,CAAC,CAAC;EACP,GAAG;;EAEH,EAAE,SAAS,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE;EAChC,IAAI,AAAuC,CAAC,OAAO,CAAC,EAAE,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,CAAC,EAAE,0EAA0E,GAAG,0EAA0E,CAAC,CAAC,AAAQ,CAAC;EACtS,IAAI,IAAI,MAAM,GAAG,SAAS,CAAC;EAC3B,IAAI,IAAI,QAAQ,GAAG,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;EAC9E,IAAI,iBAAiB,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,mBAAmB,EAAE,UAAU,EAAE,EAAE;EAC/F,MAAM,IAAI,CAAC,EAAE,EAAE,OAAO;EACtB,MAAM,IAAI,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;EACtC,MAAM,IAAI,GAAG,GAAG,QAAQ,CAAC,GAAG;EAC5B,UAAU,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;;EAEjC,MAAM,IAAI,aAAa,EAAE;EACzB,QAAQ,aAAa,CAAC,YAAY,CAAC;EACnC,UAAU,GAAG,EAAE,GAAG;EAClB,UAAU,KAAK,EAAE,KAAK;EACtB,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;;EAEvB,QAAQ,IAAI,YAAY,EAAE;EAC1B,UAAU,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;EACxC,SAAS,MAAM;EACf,UAAU,IAAI,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;EAChE,UAAU,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC;EAClE,UAAU,QAAQ,CAAC;EACnB,YAAY,MAAM,EAAE,MAAM;EAC1B,YAAY,QAAQ,EAAE,QAAQ;EAC9B,WAAW,CAAC,CAAC;EACb,SAAS;EACT,OAAO,MAAM;EACb,QAAQ,AAAuC,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,oFAAoF,CAAC,CAAC,AAAQ,CAAC;EAC5K,QAAQ,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;EACtC,OAAO;EACP,KAAK,CAAC,CAAC;EACP,GAAG;;EAEH,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE;EACjB,IAAI,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;EACxB,GAAG;;EAEH,EAAE,SAAS,MAAM,GAAG;EACpB,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;EACX,GAAG;;EAEH,EAAE,SAAS,SAAS,GAAG;EACvB,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;EACV,GAAG;;EAEH,EAAE,IAAI,aAAa,GAAG,CAAC,CAAC;;EAExB,EAAE,SAAS,iBAAiB,CAAC,KAAK,EAAE;EACpC,IAAI,aAAa,IAAI,KAAK,CAAC;;EAE3B,IAAI,IAAI,aAAa,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE;EAC5C,MAAM,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;EAC7D,MAAM,IAAI,uBAAuB,EAAE,MAAM,CAAC,gBAAgB,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;EAC9F,KAAK,MAAM,IAAI,aAAa,KAAK,CAAC,EAAE;EACpC,MAAM,MAAM,CAAC,mBAAmB,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;EAChE,MAAM,IAAI,uBAAuB,EAAE,MAAM,CAAC,mBAAmB,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;EACjG,KAAK;EACL,GAAG;;EAEH,EAAE,IAAI,SAAS,GAAG,KAAK,CAAC;;EAExB,EAAE,SAAS,KAAK,CAAC,MAAM,EAAE;EACzB,IAAI,IAAI,MAAM,KAAK,KAAK,CAAC,EAAE;EAC3B,MAAM,MAAM,GAAG,KAAK,CAAC;EACrB,KAAK;;EAEL,IAAI,IAAI,OAAO,GAAG,iBAAiB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;;EAEtD,IAAI,IAAI,CAAC,SAAS,EAAE;EACpB,MAAM,iBAAiB,CAAC,CAAC,CAAC,CAAC;EAC3B,MAAM,SAAS,GAAG,IAAI,CAAC;EACvB,KAAK;;EAEL,IAAI,OAAO,YAAY;EACvB,MAAM,IAAI,SAAS,EAAE;EACrB,QAAQ,SAAS,GAAG,KAAK,CAAC;EAC1B,QAAQ,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;EAC9B,OAAO;;EAEP,MAAM,OAAO,OAAO,EAAE,CAAC;EACvB,KAAK,CAAC;EACN,GAAG;;EAEH,EAAE,SAAS,MAAM,CAAC,QAAQ,EAAE;EAC5B,IAAI,IAAI,QAAQ,GAAG,iBAAiB,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;EAC9D,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC;EACzB,IAAI,OAAO,YAAY;EACvB,MAAM,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;EAC5B,MAAM,QAAQ,EAAE,CAAC;EACjB,KAAK,CAAC;EACN,GAAG;;EAEH,EAAE,IAAI,OAAO,GAAG;EAChB,IAAI,MAAM,EAAE,aAAa,CAAC,MAAM;EAChC,IAAI,MAAM,EAAE,KAAK;EACjB,IAAI,QAAQ,EAAE,eAAe;EAC7B,IAAI,UAAU,EAAE,UAAU;EAC1B,IAAI,IAAI,EAAE,IAAI;EACd,IAAI,OAAO,EAAE,OAAO;EACpB,IAAI,EAAE,EAAE,EAAE;EACV,IAAI,MAAM,EAAE,MAAM;EAClB,IAAI,SAAS,EAAE,SAAS;EACxB,IAAI,KAAK,EAAE,KAAK;EAChB,IAAI,MAAM,EAAE,MAAM;EAClB,GAAG,CAAC;EACJ,EAAE,OAAO,OAAO,CAAC;EACjB,CAAC;;EAED,IAAI,iBAAiB,GAAG,YAAY,CAAC;EACrC,IAAI,cAAc,GAAG;EACrB,EAAE,QAAQ,EAAE;EACZ,IAAI,UAAU,EAAE,SAAS,UAAU,CAAC,IAAI,EAAE;EAC1C,MAAM,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;EAC5E,KAAK;EACL,IAAI,UAAU,EAAE,SAAS,UAAU,CAAC,IAAI,EAAE;EAC1C,MAAM,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;EAC5D,KAAK;EACL,GAAG;EACH,EAAE,OAAO,EAAE;EACX,IAAI,UAAU,EAAE,iBAAiB;EACjC,IAAI,UAAU,EAAE,eAAe;EAC/B,GAAG;EACH,EAAE,KAAK,EAAE;EACT,IAAI,UAAU,EAAE,eAAe;EAC/B,IAAI,UAAU,EAAE,eAAe;EAC/B,GAAG;EACH,CAAC,CAAC;;EAEF,SAAS,WAAW,GAAG;EACvB;EACA;EACA,EAAE,IAAI,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;EAClC,EAAE,IAAI,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;EACpC,EAAE,OAAO,SAAS,KAAK,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;EAC/D,CAAC;;EAED,SAAS,YAAY,CAAC,IAAI,EAAE;EAC5B,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;EAC9B,CAAC;;EAED,SAAS,eAAe,CAAC,IAAI,EAAE;EAC/B,EAAE,IAAI,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;EACpD,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,IAAI,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC;EACtG,CAAC;;EAED,SAAS,iBAAiB,CAAC,KAAK,EAAE;EAClC,EAAE,IAAI,KAAK,KAAK,KAAK,CAAC,EAAE;EACxB,IAAI,KAAK,GAAG,EAAE,CAAC;EACf,GAAG;;EAEH,EAAE,CAAC,SAAS,GAAG,AAAuC,CAAC,SAAS,CAAC,KAAK,EAAE,0BAA0B,CAAC,CAAC,AAAkB,GAAG,KAAK,CAAC,CAAC;EAChI,EAAE,IAAI,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC;EACrC,EAAE,IAAI,kBAAkB,GAAG,gCAAgC,EAAE,CAAC;EAC9D,EAAE,IAAI,MAAM,GAAG,KAAK;EACpB,MAAM,qBAAqB,GAAG,MAAM,CAAC,mBAAmB;EACxD,MAAM,mBAAmB,GAAG,qBAAqB,KAAK,KAAK,CAAC,GAAG,eAAe,GAAG,qBAAqB;EACtG,MAAM,eAAe,GAAG,MAAM,CAAC,QAAQ;EACvC,MAAM,QAAQ,GAAG,eAAe,KAAK,KAAK,CAAC,GAAG,OAAO,GAAG,eAAe,CAAC;EACxE,EAAE,IAAI,QAAQ,GAAG,KAAK,CAAC,QAAQ,GAAG,kBAAkB,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC;EAC3F,EAAE,IAAI,qBAAqB,GAAG,cAAc,CAAC,QAAQ,CAAC;EACtD,MAAM,UAAU,GAAG,qBAAqB,CAAC,UAAU;EACnD,MAAM,UAAU,GAAG,qBAAqB,CAAC,UAAU,CAAC;;EAEpD,EAAE,SAAS,cAAc,GAAG;EAC5B,IAAI,IAAI,IAAI,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC,CAAC;EACzC,IAAI,AAAuC,CAAC,OAAO,CAAC,CAAC,QAAQ,IAAI,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,+EAA+E,GAAG,oCAAoC,GAAG,IAAI,GAAG,mBAAmB,GAAG,QAAQ,GAAG,IAAI,CAAC,CAAC,AAAQ,CAAC;EAC9Q,IAAI,IAAI,QAAQ,EAAE,IAAI,GAAG,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;EACvD,IAAI,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;EAChC,GAAG;;EAEH,EAAE,IAAI,iBAAiB,GAAG,uBAAuB,EAAE,CAAC;;EAEpD,EAAE,SAAS,QAAQ,CAAC,SAAS,EAAE;EAC/B,IAAI,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;;EAEjC,IAAI,OAAO,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC;EAC1C,IAAI,iBAAiB,CAAC,eAAe,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;EACxE,GAAG;;EAEH,EAAE,IAAI,YAAY,GAAG,KAAK,CAAC;EAC3B,EAAE,IAAI,UAAU,GAAG,IAAI,CAAC;;EAExB,EAAE,SAAS,gBAAgB,GAAG;EAC9B,IAAI,IAAI,IAAI,GAAG,WAAW,EAAE,CAAC;EAC7B,IAAI,IAAI,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;;EAEvC,IAAI,IAAI,IAAI,KAAK,WAAW,EAAE;EAC9B;EACA,MAAM,eAAe,CAAC,WAAW,CAAC,CAAC;EACnC,KAAK,MAAM;EACX,MAAM,IAAI,QAAQ,GAAG,cAAc,EAAE,CAAC;EACtC,MAAM,IAAI,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC;EAC1C,MAAM,IAAI,CAAC,YAAY,IAAI,iBAAiB,CAAC,YAAY,EAAE,QAAQ,CAAC,EAAE,OAAO;;EAE7E,MAAM,IAAI,UAAU,KAAK,UAAU,CAAC,QAAQ,CAAC,EAAE,OAAO;;EAEtD,MAAM,UAAU,GAAG,IAAI,CAAC;EACxB,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC;EAC1B,KAAK;EACL,GAAG;;EAEH,EAAE,SAAS,SAAS,CAAC,QAAQ,EAAE;EAC/B,IAAI,IAAI,YAAY,EAAE;EACtB,MAAM,YAAY,GAAG,KAAK,CAAC;EAC3B,MAAM,QAAQ,EAAE,CAAC;EACjB,KAAK,MAAM;EACX,MAAM,IAAI,MAAM,GAAG,KAAK,CAAC;EACzB,MAAM,iBAAiB,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,mBAAmB,EAAE,UAAU,EAAE,EAAE;EACjG,QAAQ,IAAI,EAAE,EAAE;EAChB,UAAU,QAAQ,CAAC;EACnB,YAAY,MAAM,EAAE,MAAM;EAC1B,YAAY,QAAQ,EAAE,QAAQ;EAC9B,WAAW,CAAC,CAAC;EACb,SAAS,MAAM;EACf,UAAU,SAAS,CAAC,QAAQ,CAAC,CAAC;EAC9B,SAAS;EACT,OAAO,CAAC,CAAC;EACT,KAAK;EACL,GAAG;;EAEH,EAAE,SAAS,SAAS,CAAC,YAAY,EAAE;EACnC,IAAI,IAAI,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC;EACtC;EACA;;EAEA,IAAI,IAAI,OAAO,GAAG,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;EAC/D,IAAI,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC;EACpC,IAAI,IAAI,SAAS,GAAG,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC;EACnE,IAAI,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC;EACxC,IAAI,IAAI,KAAK,GAAG,OAAO,GAAG,SAAS,CAAC;;EAEpC,IAAI,IAAI,KAAK,EAAE;EACf,MAAM,YAAY,GAAG,IAAI,CAAC;EAC1B,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;EAChB,KAAK;EACL,GAAG;;;EAGH,EAAE,IAAI,IAAI,GAAG,WAAW,EAAE,CAAC;EAC3B,EAAE,IAAI,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;EACrC,EAAE,IAAI,IAAI,KAAK,WAAW,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC;EACzD,EAAE,IAAI,eAAe,GAAG,cAAc,EAAE,CAAC;EACzC,EAAE,IAAI,QAAQ,GAAG,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC;;EAE/C,EAAE,SAAS,UAAU,CAAC,QAAQ,EAAE;EAChC,IAAI,OAAO,GAAG,GAAG,UAAU,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;EAC7D,GAAG;;EAEH,EAAE,SAAS,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE;EAC7B,IAAI,AAAuC,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,+CAA+C,CAAC,CAAC,AAAQ,CAAC;EACnI,IAAI,IAAI,MAAM,GAAG,MAAM,CAAC;EACxB,IAAI,IAAI,QAAQ,GAAG,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;EAChF,IAAI,iBAAiB,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,mBAAmB,EAAE,UAAU,EAAE,EAAE;EAC/F,MAAM,IAAI,CAAC,EAAE,EAAE,OAAO;EACtB,MAAM,IAAI,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;EACtC,MAAM,IAAI,WAAW,GAAG,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;EACpD,MAAM,IAAI,WAAW,GAAG,WAAW,EAAE,KAAK,WAAW,CAAC;;EAEtD,MAAM,IAAI,WAAW,EAAE;EACvB;EACA;EACA;EACA,QAAQ,UAAU,GAAG,IAAI,CAAC;EAC1B,QAAQ,YAAY,CAAC,WAAW,CAAC,CAAC;EAClC,QAAQ,IAAI,SAAS,GAAG,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;EAC3E,QAAQ,IAAI,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC;EAChF,QAAQ,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;EAC7B,QAAQ,QAAQ,GAAG,SAAS,CAAC;EAC7B,QAAQ,QAAQ,CAAC;EACjB,UAAU,MAAM,EAAE,MAAM;EACxB,UAAU,QAAQ,EAAE,QAAQ;EAC5B,SAAS,CAAC,CAAC;EACX,OAAO,MAAM;EACb,QAAQ,AAAuC,CAAC,OAAO,CAAC,KAAK,EAAE,4FAA4F,CAAC,CAAC,AAAQ,CAAC;EACtK,QAAQ,QAAQ,EAAE,CAAC;EACnB,OAAO;EACP,KAAK,CAAC,CAAC;EACP,GAAG;;EAEH,EAAE,SAAS,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE;EAChC,IAAI,AAAuC,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,kDAAkD,CAAC,CAAC,AAAQ,CAAC;EACtI,IAAI,IAAI,MAAM,GAAG,SAAS,CAAC;EAC3B,IAAI,IAAI,QAAQ,GAAG,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;EAChF,IAAI,iBAAiB,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,mBAAmB,EAAE,UAAU,EAAE,EAAE;EAC/F,MAAM,IAAI,CAAC,EAAE,EAAE,OAAO;EACtB,MAAM,IAAI,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;EACtC,MAAM,IAAI,WAAW,GAAG,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;EACpD,MAAM,IAAI,WAAW,GAAG,WAAW,EAAE,KAAK,WAAW,CAAC;;EAEtD,MAAM,IAAI,WAAW,EAAE;EACvB;EACA;EACA;EACA,QAAQ,UAAU,GAAG,IAAI,CAAC;EAC1B,QAAQ,eAAe,CAAC,WAAW,CAAC,CAAC;EACrC,OAAO;;EAEP,MAAM,IAAI,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;EACrE,MAAM,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;EACvD,MAAM,QAAQ,CAAC;EACf,QAAQ,MAAM,EAAE,MAAM;EACtB,QAAQ,QAAQ,EAAE,QAAQ;EAC1B,OAAO,CAAC,CAAC;EACT,KAAK,CAAC,CAAC;EACP,GAAG;;EAEH,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE;EACjB,IAAI,AAAuC,CAAC,OAAO,CAAC,kBAAkB,EAAE,8DAA8D,CAAC,CAAC,AAAQ,CAAC;EACjJ,IAAI,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;EACxB,GAAG;;EAEH,EAAE,SAAS,MAAM,GAAG;EACpB,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;EACX,GAAG;;EAEH,EAAE,SAAS,SAAS,GAAG;EACvB,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;EACV,GAAG;;EAEH,EAAE,IAAI,aAAa,GAAG,CAAC,CAAC;;EAExB,EAAE,SAAS,iBAAiB,CAAC,KAAK,EAAE;EACpC,IAAI,aAAa,IAAI,KAAK,CAAC;;EAE3B,IAAI,IAAI,aAAa,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE;EAC5C,MAAM,MAAM,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;EACnE,KAAK,MAAM,IAAI,aAAa,KAAK,CAAC,EAAE;EACpC,MAAM,MAAM,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;EACtE,KAAK;EACL,GAAG;;EAEH,EAAE,IAAI,SAAS,GAAG,KAAK,CAAC;;EAExB,EAAE,SAAS,KAAK,CAAC,MAAM,EAAE;EACzB,IAAI,IAAI,MAAM,KAAK,KAAK,CAAC,EAAE;EAC3B,MAAM,MAAM,GAAG,KAAK,CAAC;EACrB,KAAK;;EAEL,IAAI,IAAI,OAAO,GAAG,iBAAiB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;;EAEtD,IAAI,IAAI,CAAC,SAAS,EAAE;EACpB,MAAM,iBAAiB,CAAC,CAAC,CAAC,CAAC;EAC3B,MAAM,SAAS,GAAG,IAAI,CAAC;EACvB,KAAK;;EAEL,IAAI,OAAO,YAAY;EACvB,MAAM,IAAI,SAAS,EAAE;EACrB,QAAQ,SAAS,GAAG,KAAK,CAAC;EAC1B,QAAQ,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;EAC9B,OAAO;;EAEP,MAAM,OAAO,OAAO,EAAE,CAAC;EACvB,KAAK,CAAC;EACN,GAAG;;EAEH,EAAE,SAAS,MAAM,CAAC,QAAQ,EAAE;EAC5B,IAAI,IAAI,QAAQ,GAAG,iBAAiB,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;EAC9D,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC;EACzB,IAAI,OAAO,YAAY;EACvB,MAAM,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;EAC5B,MAAM,QAAQ,EAAE,CAAC;EACjB,KAAK,CAAC;EACN,GAAG;;EAEH,EAAE,IAAI,OAAO,GAAG;EAChB,IAAI,MAAM,EAAE,aAAa,CAAC,MAAM;EAChC,IAAI,MAAM,EAAE,KAAK;EACjB,IAAI,QAAQ,EAAE,eAAe;EAC7B,IAAI,UAAU,EAAE,UAAU;EAC1B,IAAI,IAAI,EAAE,IAAI;EACd,IAAI,OAAO,EAAE,OAAO;EACpB,IAAI,EAAE,EAAE,EAAE;EACV,IAAI,MAAM,EAAE,MAAM;EAClB,IAAI,SAAS,EAAE,SAAS;EACxB,IAAI,KAAK,EAAE,KAAK;EAChB,IAAI,MAAM,EAAE,MAAM;EAClB,GAAG,CAAC;EACJ,EAAE,OAAO,OAAO,CAAC;EACjB,CAAC;;EAED,SAAS,KAAK,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE;EAC1C,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,CAAC;EACvD,CAAC;EACD;EACA;EACA;;;EAGA,SAAS,mBAAmB,CAAC,KAAK,EAAE;EACpC,EAAE,IAAI,KAAK,KAAK,KAAK,CAAC,EAAE;EACxB,IAAI,KAAK,GAAG,EAAE,CAAC;EACf,GAAG;;EAEH,EAAE,IAAI,MAAM,GAAG,KAAK;EACpB,MAAM,mBAAmB,GAAG,MAAM,CAAC,mBAAmB;EACtD,MAAM,qBAAqB,GAAG,MAAM,CAAC,cAAc;EACnD,MAAM,cAAc,GAAG,qBAAqB,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,qBAAqB;EACvF,MAAM,mBAAmB,GAAG,MAAM,CAAC,YAAY;EAC/C,MAAM,YAAY,GAAG,mBAAmB,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,mBAAmB;EAC7E,MAAM,gBAAgB,GAAG,MAAM,CAAC,SAAS;EACzC,MAAM,SAAS,GAAG,gBAAgB,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAAC;EACrE,EAAE,IAAI,iBAAiB,GAAG,uBAAuB,EAAE,CAAC;;EAEpD,EAAE,SAAS,QAAQ,CAAC,SAAS,EAAE;EAC/B,IAAI,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;;EAEjC,IAAI,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;EAC5C,IAAI,iBAAiB,CAAC,eAAe,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;EACxE,GAAG;;EAEH,EAAE,SAAS,SAAS,GAAG;EACvB,IAAI,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;EAC3D,GAAG;;EAEH,EAAE,IAAI,KAAK,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC,EAAE,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;EAChE,EAAE,IAAI,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,UAAU,KAAK,EAAE;EACpD,IAAI,OAAO,OAAO,KAAK,KAAK,QAAQ,GAAG,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,GAAG,IAAI,SAAS,EAAE,CAAC,CAAC;EAClJ,GAAG,CAAC,CAAC;;EAEL,EAAE,IAAI,UAAU,GAAG,UAAU,CAAC;;EAE9B,EAAE,SAAS,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE;EAC7B,IAAI,AAAuC,CAAC,OAAO,CAAC,EAAE,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,CAAC,EAAE,uEAAuE,GAAG,0EAA0E,CAAC,CAAC,AAAQ,CAAC;EACnS,IAAI,IAAI,MAAM,GAAG,MAAM,CAAC;EACxB,IAAI,IAAI,QAAQ,GAAG,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;EAC9E,IAAI,iBAAiB,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,mBAAmB,EAAE,UAAU,EAAE,EAAE;EAC/F,MAAM,IAAI,CAAC,EAAE,EAAE,OAAO;EACtB,MAAM,IAAI,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC;EACpC,MAAM,IAAI,SAAS,GAAG,SAAS,GAAG,CAAC,CAAC;EACpC,MAAM,IAAI,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;;EAEjD,MAAM,IAAI,WAAW,CAAC,MAAM,GAAG,SAAS,EAAE;EAC1C,QAAQ,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,GAAG,SAAS,EAAE,QAAQ,CAAC,CAAC;EAChF,OAAO,MAAM;EACb,QAAQ,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;EACnC,OAAO;;EAEP,MAAM,QAAQ,CAAC;EACf,QAAQ,MAAM,EAAE,MAAM;EACtB,QAAQ,QAAQ,EAAE,QAAQ;EAC1B,QAAQ,KAAK,EAAE,SAAS;EACxB,QAAQ,OAAO,EAAE,WAAW;EAC5B,OAAO,CAAC,CAAC;EACT,KAAK,CAAC,CAAC;EACP,GAAG;;EAEH,EAAE,SAAS,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE;EAChC,IAAI,AAAuC,CAAC,OAAO,CAAC,EAAE,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,CAAC,EAAE,0EAA0E,GAAG,0EAA0E,CAAC,CAAC,AAAQ,CAAC;EACtS,IAAI,IAAI,MAAM,GAAG,SAAS,CAAC;EAC3B,IAAI,IAAI,QAAQ,GAAG,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;EAC9E,IAAI,iBAAiB,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,mBAAmB,EAAE,UAAU,EAAE,EAAE;EAC/F,MAAM,IAAI,CAAC,EAAE,EAAE,OAAO;EACtB,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;EAChD,MAAM,QAAQ,CAAC;EACf,QAAQ,MAAM,EAAE,MAAM;EACtB,QAAQ,QAAQ,EAAE,QAAQ;EAC1B,OAAO,CAAC,CAAC;EACT,KAAK,CAAC,CAAC;EACP,GAAG;;EAEH,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE;EACjB,IAAI,IAAI,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;EAC5E,IAAI,IAAI,MAAM,GAAG,KAAK,CAAC;EACvB,IAAI,IAAI,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;EAC9C,IAAI,iBAAiB,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,mBAAmB,EAAE,UAAU,EAAE,EAAE;EAC/F,MAAM,IAAI,EAAE,EAAE;EACd,QAAQ,QAAQ,CAAC;EACjB,UAAU,MAAM,EAAE,MAAM;EACxB,UAAU,QAAQ,EAAE,QAAQ;EAC5B,UAAU,KAAK,EAAE,SAAS;EAC1B,SAAS,CAAC,CAAC;EACX,OAAO,MAAM;EACb;EACA;EACA,QAAQ,QAAQ,EAAE,CAAC;EACnB,OAAO;EACP,KAAK,CAAC,CAAC;EACP,GAAG;;EAEH,EAAE,SAAS,MAAM,GAAG;EACpB,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;EACX,GAAG;;EAEH,EAAE,SAAS,SAAS,GAAG;EACvB,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;EACV,GAAG;;EAEH,EAAE,SAAS,KAAK,CAAC,CAAC,EAAE;EACpB,IAAI,IAAI,SAAS,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC;EACtC,IAAI,OAAO,SAAS,IAAI,CAAC,IAAI,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;EAChE,GAAG;;EAEH,EAAE,SAAS,KAAK,CAAC,MAAM,EAAE;EACzB,IAAI,IAAI,MAAM,KAAK,KAAK,CAAC,EAAE;EAC3B,MAAM,MAAM,GAAG,KAAK,CAAC;EACrB,KAAK;;EAEL,IAAI,OAAO,iBAAiB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;EAC/C,GAAG;;EAEH,EAAE,SAAS,MAAM,CAAC,QAAQ,EAAE;EAC5B,IAAI,OAAO,iBAAiB,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;EACtD,GAAG;;EAEH,EAAE,IAAI,OAAO,GAAG;EAChB,IAAI,MAAM,EAAE,OAAO,CAAC,MAAM;EAC1B,IAAI,MAAM,EAAE,KAAK;EACjB,IAAI,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC;EAC5B,IAAI,KAAK,EAAE,KAAK;EAChB,IAAI,OAAO,EAAE,OAAO;EACpB,IAAI,UAAU,EAAE,UAAU;EAC1B,IAAI,IAAI,EAAE,IAAI;EACd,IAAI,OAAO,EAAE,OAAO;EACpB,IAAI,EAAE,EAAE,EAAE;EACV,IAAI,MAAM,EAAE,MAAM;EAClB,IAAI,SAAS,EAAE,SAAS;EACxB,IAAI,KAAK,EAAE,KAAK;EAChB,IAAI,KAAK,EAAE,KAAK;EAChB,IAAI,MAAM,EAAE,MAAM;EAClB,GAAG,CAAC;EACJ,EAAE,OAAO,OAAO,CAAC;EACjB,CAAC;;ECr4Bc,SAASQ,gBAAc,CAAC,QAAQ,EAAE,UAAU,EAAE;EAC7D,EAAE,QAAQ,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;EAC3D,EAAE,QAAQ,CAAC,SAAS,CAAC,WAAW,GAAG,QAAQ,CAAC;EAC5C,EAAE,QAAQ,CAAC,SAAS,GAAG,UAAU,CAAC;EAClC;;GAAC,DCCD,IAAI,qBAAqB,GAAG,UAAU,CAAC;EACvC,IAAI,cAAc,GAAG,OAAO,UAAU,KAAK,WAAW,GAAG,UAAU,GAAG,OAAO,MAAM,KAAK,WAAW,GAAG,MAAM,GAAG,OAAO,MAAM,KAAK,WAAW,GAAG,MAAM,GAAG,EAAE,CAAC;;EAE3J,SAAS,WAAW,GAAG;EACvB,EAAE,IAAI,GAAG,GAAG,sBAAsB,CAAC;EACnC,EAAE,OAAO,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;EAC9D,CAAC;;EAED,SAAS,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE;EACxB,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;EACf,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;EACtC,GAAG,MAAM;EACT,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;EAC9B,GAAG;EACH,CAAC;;EAED,SAAS,kBAAkB,CAAC,KAAK,EAAE;EACnC,EAAE,IAAI,QAAQ,GAAG,EAAE,CAAC;EACpB,EAAE,OAAO;EACT,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,OAAO,EAAE;EAC7B,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;EAC7B,KAAK;EACL,IAAI,GAAG,EAAE,SAAS,GAAG,CAAC,OAAO,EAAE;EAC/B,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;EAC9C,QAAQ,OAAO,CAAC,KAAK,OAAO,CAAC;EAC7B,OAAO,CAAC,CAAC;EACT,KAAK;EACL,IAAI,GAAG,EAAE,SAAS,GAAG,GAAG;EACxB,MAAM,OAAO,KAAK,CAAC;EACnB,KAAK;EACL,IAAI,GAAG,EAAE,SAAS,GAAG,CAAC,QAAQ,EAAE,WAAW,EAAE;EAC7C,MAAM,KAAK,GAAG,QAAQ,CAAC;EACvB,MAAM,QAAQ,CAAC,OAAO,CAAC,UAAU,OAAO,EAAE;EAC1C,QAAQ,OAAO,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;EAC3C,OAAO,CAAC,CAAC;EACT,KAAK;EACL,GAAG,CAAC;EACJ,CAAC;;EAED,SAAS,SAAS,CAAC,QAAQ,EAAE;EAC7B,EAAE,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;EAC1D,CAAC;;EAED,SAAS,kBAAkB,CAAC,YAAY,EAAE,oBAAoB,EAAE;EAChE,EAAE,IAAI,qBAAqB,EAAE,qBAAqB,CAAC;;EAEnD,EAAE,IAAI,WAAW,GAAG,yBAAyB,GAAG,WAAW,EAAE,GAAG,IAAI,CAAC;;EAErE,EAAE,IAAI,QAAQ,gBAAgB,UAAU,UAAU,EAAE;EACpD,IAAIA,gBAAc,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;;EAEzC,IAAI,SAAS,QAAQ,GAAG;EACxB,MAAM,IAAI,KAAK,CAAC;;EAEhB,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC;EACxD,MAAM,KAAK,CAAC,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;EAC5D,MAAM,OAAO,KAAK,CAAC;EACnB,KAAK;;EAEL,IAAI,IAAI,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC;;EAEpC,IAAI,MAAM,CAAC,eAAe,GAAG,SAAS,eAAe,GAAG;EACxD,MAAM,IAAI,IAAI,CAAC;;EAEf,MAAM,OAAO,IAAI,GAAG,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC;EAC/D,KAAK,CAAC;;EAEN,IAAI,MAAM,CAAC,yBAAyB,GAAG,SAAS,yBAAyB,CAAC,SAAS,EAAE;EACrF,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,KAAK,EAAE;EAChD,QAAQ,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;EACxC,QAAQ,IAAI,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC;EACvC,QAAQ,IAAI,WAAW,CAAC;;EAExB,QAAQ,IAAI,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE;EAC1C,UAAU,WAAW,GAAG,CAAC,CAAC;EAC1B,SAAS,MAAM;EACf,UAAU,WAAW,GAAG,OAAO,oBAAoB,KAAK,UAAU,GAAG,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,qBAAqB,CAAC;;EAEtI,UAAU,AAA2C;EACrD,YAAY,OAAO,CAAC,CAAC,WAAW,GAAG,qBAAqB,MAAM,WAAW,EAAE,0DAA0D,GAAG,oCAAoC,GAAG,WAAW,CAAC,CAAC;EAC5L,WAAW;;EAEX,UAAU,WAAW,IAAI,CAAC,CAAC;;EAE3B,UAAU,IAAI,WAAW,KAAK,CAAC,EAAE;EACjC,YAAY,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;EAC3D,WAAW;EACX,SAAS;EACT,OAAO;EACP,KAAK,CAAC;;EAEN,IAAI,MAAM,CAAC,MAAM,GAAG,SAAS,MAAM,GAAG;EACtC,MAAM,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;EACjC,KAAK,CAAC;;EAEN,IAAI,OAAO,QAAQ,CAAC;EACpB,GAAG,CAACC,eAAS,CAAC,CAAC;;EAEf,EAAE,QAAQ,CAAC,iBAAiB,IAAI,qBAAqB,GAAG,EAAE,EAAE,qBAAqB,CAAC,WAAW,CAAC,GAAGC,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC;;EAErJ,EAAE,IAAI,QAAQ,gBAAgB,UAAU,WAAW,EAAE;EACrD,IAAIF,gBAAc,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;;EAE1C,IAAI,SAAS,QAAQ,GAAG;EACxB,MAAM,IAAI,MAAM,CAAC;;EAEjB,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC;EAC1D,MAAM,MAAM,CAAC,KAAK,GAAG;EACrB,QAAQ,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE;EAChC,OAAO,CAAC;;EAER,MAAM,MAAM,CAAC,QAAQ,GAAG,UAAU,QAAQ,EAAE,WAAW,EAAE;EACzD,QAAQ,IAAI,YAAY,GAAG,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC;;EAEnD,QAAQ,IAAI,CAAC,YAAY,GAAG,WAAW,MAAM,CAAC,EAAE;EAChD,UAAU,MAAM,CAAC,QAAQ,CAAC;EAC1B,YAAY,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE;EACpC,WAAW,CAAC,CAAC;EACb,SAAS;EACT,OAAO,CAAC;;EAER,MAAM,OAAO,MAAM,CAAC;EACpB,KAAK;;EAEL,IAAI,IAAI,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC;;EAErC,IAAI,OAAO,CAAC,yBAAyB,GAAG,SAAS,yBAAyB,CAAC,SAAS,EAAE;EACtF,MAAM,IAAI,YAAY,GAAG,SAAS,CAAC,YAAY,CAAC;EAChD,MAAM,IAAI,CAAC,YAAY,GAAG,YAAY,KAAK,SAAS,IAAI,YAAY,KAAK,IAAI,GAAG,qBAAqB,GAAG,YAAY,CAAC;EACrH,KAAK,CAAC;;EAEN,IAAI,OAAO,CAAC,iBAAiB,GAAG,SAAS,iBAAiB,GAAG;EAC7D,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;EACrC,QAAQ,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;EACpD,OAAO;;EAEP,MAAM,IAAI,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;EACjD,MAAM,IAAI,CAAC,YAAY,GAAG,YAAY,KAAK,SAAS,IAAI,YAAY,KAAK,IAAI,GAAG,qBAAqB,GAAG,YAAY,CAAC;EACrH,KAAK,CAAC;;EAEN,IAAI,OAAO,CAAC,oBAAoB,GAAG,SAAS,oBAAoB,GAAG;EACnE,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;EACrC,QAAQ,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;EACrD,OAAO;EACP,KAAK,CAAC;;EAEN,IAAI,OAAO,CAAC,QAAQ,GAAG,SAAS,QAAQ,GAAG;EAC3C,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;EACrC,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE,CAAC;EAC/C,OAAO,MAAM;EACb,QAAQ,OAAO,YAAY,CAAC;EAC5B,OAAO;EACP,KAAK,CAAC;;EAEN,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,MAAM,GAAG;EACvC,MAAM,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;EAC9D,KAAK,CAAC;;EAEN,IAAI,OAAO,QAAQ,CAAC;EACpB,GAAG,CAACC,eAAS,CAAC,CAAC;;EAEf,EAAE,QAAQ,CAAC,YAAY,IAAI,qBAAqB,GAAG,EAAE,EAAE,qBAAqB,CAAC,WAAW,CAAC,GAAGC,SAAS,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;EACrI,EAAE,OAAO;EACT,IAAI,QAAQ,EAAE,QAAQ;EACtB,IAAI,QAAQ,EAAE,QAAQ;EACtB,GAAG,CAAC;EACJ,CAAC;;EAED,IAAI,KAAK,GAAGC,cAAK,CAAC,aAAa,IAAI,kBAAkB,CAAC;;EC7KtD,WAAc,GAAG,KAAK,CAAC,OAAO,IAAI,UAAU,GAAG,EAAE;IAC/C,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,gBAAgB,CAAC;GAChE,CAAC;;ECAF;;;EAGA,kBAAc,GAAG,aAAY;EAC7B,WAAoB,GAAG,MAAK;EAC5B,aAAsB,GAAG,QAAO;EAChC,sBAA+B,GAAG,iBAAgB;EAClD,oBAA6B,GAAG,eAAc;;;;;;;EAO9C,IAAI,WAAW,GAAG,IAAI,MAAM,CAAC;;;IAG3B,SAAS;;;;;;;IAOT,wGAAwG;GACzG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAC;;;;;;;;;EASjB,SAAS,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE;IAC5B,IAAI,MAAM,GAAG,GAAE;IACf,IAAI,GAAG,GAAG,EAAC;IACX,IAAI,KAAK,GAAG,EAAC;IACb,IAAI,IAAI,GAAG,GAAE;IACb,IAAI,gBAAgB,GAAG,OAAO,IAAI,OAAO,CAAC,SAAS,IAAI,IAAG;IAC1D,IAAI,IAAG;;IAEP,OAAO,CAAC,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;MAC5C,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,EAAC;MACd,IAAI,OAAO,GAAG,GAAG,CAAC,CAAC,EAAC;MACpB,IAAI,MAAM,GAAG,GAAG,CAAC,MAAK;MACtB,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAC;MAChC,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC,OAAM;;;MAGzB,IAAI,OAAO,EAAE;QACX,IAAI,IAAI,OAAO,CAAC,CAAC,EAAC;QAClB,QAAQ;OACT;;MAED,IAAI,IAAI,GAAG,GAAG,CAAC,KAAK,EAAC;MACrB,IAAI,MAAM,GAAG,GAAG,CAAC,CAAC,EAAC;MACnB,IAAI,IAAI,GAAG,GAAG,CAAC,CAAC,EAAC;MACjB,IAAI,OAAO,GAAG,GAAG,CAAC,CAAC,EAAC;MACpB,IAAI,KAAK,GAAG,GAAG,CAAC,CAAC,EAAC;MAClB,IAAI,QAAQ,GAAG,GAAG,CAAC,CAAC,EAAC;MACrB,IAAI,QAAQ,GAAG,GAAG,CAAC,CAAC,EAAC;;;MAGrB,IAAI,IAAI,EAAE;QACR,MAAM,CAAC,IAAI,CAAC,IAAI,EAAC;QACjB,IAAI,GAAG,GAAE;OACV;;MAED,IAAI,OAAO,GAAG,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,OAAM;MAC/D,IAAI,MAAM,GAAG,QAAQ,KAAK,GAAG,IAAI,QAAQ,KAAK,IAAG;MACjD,IAAI,QAAQ,GAAG,QAAQ,KAAK,GAAG,IAAI,QAAQ,KAAK,IAAG;MACnD,IAAI,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,iBAAgB;MAC1C,IAAI,OAAO,GAAG,OAAO,IAAI,MAAK;;MAE9B,MAAM,CAAC,IAAI,CAAC;QACV,IAAI,EAAE,IAAI,IAAI,GAAG,EAAE;QACnB,MAAM,EAAE,MAAM,IAAI,EAAE;QACpB,SAAS,EAAE,SAAS;QACpB,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,OAAO;QAChB,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,OAAO,EAAE,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,QAAQ,GAAG,IAAI,GAAG,IAAI,GAAG,YAAY,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;OACrG,EAAC;KACH;;;IAGD,IAAI,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE;MACtB,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,EAAC;KAC1B;;;IAGD,IAAI,IAAI,EAAE;MACR,MAAM,CAAC,IAAI,CAAC,IAAI,EAAC;KAClB;;IAED,OAAO,MAAM;GACd;;;;;;;;;EASD,SAAS,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE;IAC9B,OAAO,gBAAgB,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;GAC7C;;;;;;;;EAQD,SAAS,wBAAwB,EAAE,GAAG,EAAE;IACtC,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE;MACpD,OAAO,GAAG,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE;KACxD,CAAC;GACH;;;;;;;;EAQD,SAAS,cAAc,EAAE,GAAG,EAAE;IAC5B,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE;MAClD,OAAO,GAAG,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE;KACxD,CAAC;GACH;;;;;EAKD,SAAS,gBAAgB,EAAE,MAAM,EAAE;;IAEjC,IAAI,OAAO,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,EAAC;;;IAGtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;MACtC,IAAI,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;QACjC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,EAAC;OAC3D;KACF;;IAED,OAAO,UAAU,GAAG,EAAE,IAAI,EAAE;MAC1B,IAAI,IAAI,GAAG,GAAE;MACb,IAAI,IAAI,GAAG,GAAG,IAAI,GAAE;MACpB,IAAI,OAAO,GAAG,IAAI,IAAI,GAAE;MACxB,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,wBAAwB,GAAG,mBAAkB;;MAE3E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACtC,IAAI,KAAK,GAAG,MAAM,CAAC,CAAC,EAAC;;QAErB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;UAC7B,IAAI,IAAI,MAAK;;UAEb,QAAQ;SACT;;QAED,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAC;QAC5B,IAAI,QAAO;;QAEX,IAAI,KAAK,IAAI,IAAI,EAAE;UACjB,IAAI,KAAK,CAAC,QAAQ,EAAE;;YAElB,IAAI,KAAK,CAAC,OAAO,EAAE;cACjB,IAAI,IAAI,KAAK,CAAC,OAAM;aACrB;;YAED,QAAQ;WACT,MAAM;YACL,MAAM,IAAI,SAAS,CAAC,YAAY,GAAG,KAAK,CAAC,IAAI,GAAG,iBAAiB,CAAC;WACnE;SACF;;QAED,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE;UAClB,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YACjB,MAAM,IAAI,SAAS,CAAC,YAAY,GAAG,KAAK,CAAC,IAAI,GAAG,iCAAiC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;WACjH;;UAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YACtB,IAAI,KAAK,CAAC,QAAQ,EAAE;cAClB,QAAQ;aACT,MAAM;cACL,MAAM,IAAI,SAAS,CAAC,YAAY,GAAG,KAAK,CAAC,IAAI,GAAG,mBAAmB,CAAC;aACrE;WACF;;UAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAC;;YAE1B,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;cAC7B,MAAM,IAAI,SAAS,CAAC,gBAAgB,GAAG,KAAK,CAAC,IAAI,GAAG,cAAc,GAAG,KAAK,CAAC,OAAO,GAAG,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC;aAC1I;;YAED,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,SAAS,IAAI,QAAO;WAC7D;;UAED,QAAQ;SACT;;QAED,OAAO,GAAG,KAAK,CAAC,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,EAAC;;QAEhE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;UAC7B,MAAM,IAAI,SAAS,CAAC,YAAY,GAAG,KAAK,CAAC,IAAI,GAAG,cAAc,GAAG,KAAK,CAAC,OAAO,GAAG,mBAAmB,GAAG,OAAO,GAAG,GAAG,CAAC;SACtH;;QAED,IAAI,IAAI,KAAK,CAAC,MAAM,GAAG,QAAO;OAC/B;;MAED,OAAO,IAAI;KACZ;GACF;;;;;;;;EAQD,SAAS,YAAY,EAAE,GAAG,EAAE;IAC1B,OAAO,GAAG,CAAC,OAAO,CAAC,4BAA4B,EAAE,MAAM,CAAC;GACzD;;;;;;;;EAQD,SAAS,WAAW,EAAE,KAAK,EAAE;IAC3B,OAAO,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,MAAM,CAAC;GAC9C;;;;;;;;;EASD,SAAS,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE;IAC7B,EAAE,CAAC,IAAI,GAAG,KAAI;IACd,OAAO,EAAE;GACV;;;;;;;;EAQD,SAAS,KAAK,EAAE,OAAO,EAAE;IACvB,OAAO,OAAO,CAAC,SAAS,GAAG,EAAE,GAAG,GAAG;GACpC;;;;;;;;;EASD,SAAS,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE;;IAEnC,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAC;;IAE3C,IAAI,MAAM,EAAE;MACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACtC,IAAI,CAAC,IAAI,CAAC;UACR,IAAI,EAAE,CAAC;UACP,MAAM,EAAE,IAAI;UACZ,SAAS,EAAE,IAAI;UACf,QAAQ,EAAE,KAAK;UACf,MAAM,EAAE,KAAK;UACb,OAAO,EAAE,KAAK;UACd,QAAQ,EAAE,KAAK;UACf,OAAO,EAAE,IAAI;SACd,EAAC;OACH;KACF;;IAED,OAAO,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC;GAC9B;;;;;;;;;;EAUD,SAAS,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;IAC3C,IAAI,KAAK,GAAG,GAAE;;IAEd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;MACpC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,MAAM,EAAC;KACxD;;IAED,IAAI,MAAM,GAAG,IAAI,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,EAAC;;IAEtE,OAAO,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC;GAChC;;;;;;;;;;EAUD,SAAS,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;IAC5C,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC;GAC3D;;;;;;;;;;EAUD,SAAS,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;IAC9C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;MAClB,OAAO,2BAA2B,IAAI,IAAI,OAAO,EAAC;MAClD,IAAI,GAAG,GAAE;KACV;;IAED,OAAO,GAAG,OAAO,IAAI,GAAE;;IAEvB,IAAI,MAAM,GAAG,OAAO,CAAC,OAAM;IAC3B,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,KAAK,MAAK;IAC/B,IAAI,KAAK,GAAG,GAAE;;;IAGd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;MACtC,IAAI,KAAK,GAAG,MAAM,CAAC,CAAC,EAAC;;MAErB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,KAAK,IAAI,YAAY,CAAC,KAAK,EAAC;OAC7B,MAAM;QACL,IAAI,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,EAAC;QACvC,IAAI,OAAO,GAAG,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,IAAG;;QAEzC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAC;;QAEhB,IAAI,KAAK,CAAC,MAAM,EAAE;UAChB,OAAO,IAAI,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,KAAI;SAC3C;;QAED,IAAI,KAAK,CAAC,QAAQ,EAAE;UAClB,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;YAClB,OAAO,GAAG,KAAK,GAAG,MAAM,GAAG,GAAG,GAAG,OAAO,GAAG,MAAK;WACjD,MAAM;YACL,OAAO,GAAG,MAAM,GAAG,GAAG,GAAG,OAAO,GAAG,KAAI;WACxC;SACF,MAAM;UACL,OAAO,GAAG,MAAM,GAAG,GAAG,GAAG,OAAO,GAAG,IAAG;SACvC;;QAED,KAAK,IAAI,QAAO;OACjB;KACF;;IAED,IAAI,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,IAAI,GAAG,EAAC;IACtD,IAAI,iBAAiB,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,UAAS;;;;;;IAMpE,IAAI,CAAC,MAAM,EAAE;MACX,KAAK,GAAG,CAAC,iBAAiB,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,KAAK,IAAI,KAAK,GAAG,SAAS,GAAG,UAAS;KACxG;;IAED,IAAI,GAAG,EAAE;MACP,KAAK,IAAI,IAAG;KACb,MAAM;;;MAGL,KAAK,IAAI,MAAM,IAAI,iBAAiB,GAAG,EAAE,GAAG,KAAK,GAAG,SAAS,GAAG,MAAK;KACtE;;IAED,OAAO,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,GAAG,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC;GACjE;;;;;;;;;;;;;;EAcD,SAAS,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;IAC1C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;MAClB,OAAO,2BAA2B,IAAI,IAAI,OAAO,EAAC;MAClD,IAAI,GAAG,GAAE;KACV;;IAED,OAAO,GAAG,OAAO,IAAI,GAAE;;IAEvB,IAAI,IAAI,YAAY,MAAM,EAAE;MAC1B,OAAO,cAAc,CAAC,IAAI,yBAAyB,IAAI,EAAE;KAC1D;;IAED,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE;MACjB,OAAO,aAAa,wBAAwB,IAAI,0BAA0B,IAAI,GAAG,OAAO,CAAC;KAC1F;;IAED,OAAO,cAAc,wBAAwB,IAAI,0BAA0B,IAAI,GAAG,OAAO,CAAC;GAC3F;;;;;;ECzac,SAAS,6BAA6B,CAAC,MAAM,EAAE,QAAQ,EAAE;EACxE,EAAE,IAAI,MAAM,IAAI,IAAI,EAAE,OAAO,EAAE,CAAC;EAChC,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC;EAClB,EAAE,IAAI,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;EACvC,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;;EAEb,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EAC1C,IAAI,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;EACxB,IAAI,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,SAAS;EAC7C,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;EAC9B,GAAG;;EAEH,EAAE,OAAO,MAAM,CAAC;EAChB;;GAAC;;;;;ECND,IAAI,aAAa,GAAG;MAChB,iBAAiB,EAAE,IAAI;MACvB,WAAW,EAAE,IAAI;MACjB,YAAY,EAAE,IAAI;MAClB,YAAY,EAAE,IAAI;MAClB,WAAW,EAAE,IAAI;MACjB,eAAe,EAAE,IAAI;MACrB,wBAAwB,EAAE,IAAI;MAC9B,wBAAwB,EAAE,IAAI;MAC9B,MAAM,EAAE,IAAI;MACZ,SAAS,EAAE,IAAI;MACf,IAAI,EAAE,IAAI;GACb,CAAC;;EAEF,IAAI,aAAa,GAAG;MAChB,IAAI,EAAE,IAAI;MACV,MAAM,EAAE,IAAI;MACZ,SAAS,EAAE,IAAI;MACf,MAAM,EAAE,IAAI;MACZ,MAAM,EAAE,IAAI;MACZ,SAAS,EAAE,IAAI;MACf,KAAK,EAAE,IAAI;GACd,CAAC;;EAEF,IAAI,mBAAmB,GAAG;MACtB,UAAU,EAAE,IAAI;MAChB,MAAM,EAAE,IAAI;MACZ,YAAY,EAAE,IAAI;MAClB,WAAW,EAAE,IAAI;MACjB,SAAS,EAAE,IAAI;GAClB,CAAC;;EAEF,IAAI,YAAY,GAAG;MACf,UAAU,EAAE,IAAI;MAChB,OAAO,EAAE,IAAI;MACb,YAAY,EAAE,IAAI;MAClB,WAAW,EAAE,IAAI;MACjB,SAAS,EAAE,IAAI;MACf,IAAI,EAAE,IAAI;GACb,CAAC;;EAEF,IAAI,YAAY,GAAG,EAAE,CAAC;EACtB,YAAY,CAACN,OAAO,CAAC,UAAU,CAAC,GAAG,mBAAmB,CAAC;;EAEvD,SAAS,UAAU,CAAC,SAAS,EAAE;MAC3B,IAAIA,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;UAC3B,OAAO,YAAY,CAAC;OACvB;MACD,OAAO,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,IAAI,aAAa,CAAC;GAC/D;;EAED,IAAI,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;EAC3C,IAAI,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC;EACrD,IAAIO,uBAAqB,GAAG,MAAM,CAAC,qBAAqB,CAAC;EACzD,IAAI,wBAAwB,GAAG,MAAM,CAAC,wBAAwB,CAAC;EAC/D,IAAI,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;EAC3C,IAAI,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC;;EAEvC,SAAS,oBAAoB,CAAC,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE;MACvE,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE;;;UAGrC,IAAI,eAAe,EAAE;cACjB,IAAI,kBAAkB,GAAG,cAAc,CAAC,eAAe,CAAC,CAAC;cACzD,IAAI,kBAAkB,IAAI,kBAAkB,KAAK,eAAe,EAAE;kBAC9D,oBAAoB,CAAC,eAAe,EAAE,kBAAkB,EAAE,SAAS,CAAC,CAAC;eACxE;WACJ;;UAED,IAAI,IAAI,GAAG,mBAAmB,CAAC,eAAe,CAAC,CAAC;;UAEhD,IAAIA,uBAAqB,EAAE;cACvB,IAAI,GAAG,IAAI,CAAC,MAAM,CAACA,uBAAqB,CAAC,eAAe,CAAC,CAAC,CAAC;WAC9D;;UAED,IAAI,aAAa,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;UAChD,IAAI,aAAa,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;;UAEhD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;cAClC,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;cAClB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,aAAa,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,aAAa,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE;kBAC3I,IAAI,UAAU,GAAG,wBAAwB,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;kBAChE,IAAI;;sBAEA,cAAc,CAAC,eAAe,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;mBACpD,CAAC,OAAO,CAAC,EAAE,EAAE;eACjB;WACJ;;UAED,OAAO,eAAe,CAAC;OAC1B;;MAED,OAAO,eAAe,CAAC;GAC1B;;EAED,4BAAc,GAAG,oBAAoB,CAAC;;ECnGtC,IAAMC,kBAAkB,GAAG,SAArBA,kBAAqB,CAAA,IAAA,EAAQ;QAC3BC,OAAO,GAAGC,KAAhB;EACAD,EAAAA,OAAO,CAAPA,WAAAA,GAAAA,IAAAA;WAEA;EAJF,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECGA;;;;MAGME;;;;;;;;;;;;;YACJC,UAAUC,oBAAa,CAAC,MAAKC,KAAN;;;;;;WAEvBC,SAAA,kBAAS;EACP,WAAOT,6BAAC,MAAD;EAAQ,MAAA,OAAO,EAAE,KAAKM,OAAtB;EAA+B,MAAA,QAAQ,EAAE,KAAKE,KAAL,CAAWE;EAApD,MAAP;EACD;;;IALyBV,cAAK,CAACF;;AAQlC,EAAa;EACXO,EAAAA,aAAa,CAACM,SAAd,GAA0B;EACxBC,IAAAA,QAAQ,EAAEb,SAAS,CAACc,MADI;EAExBH,IAAAA,QAAQ,EAAEX,SAAS,CAACe,IAFI;EAGxBC,IAAAA,YAAY,EAAEhB,SAAS,CAACiB,IAHA;EAIxBC,IAAAA,mBAAmB,EAAElB,SAAS,CAACmB,IAJP;EAKxBC,IAAAA,SAAS,EAAEpB,SAAS,CAACqB;EALG,GAA1B;;EAQAf,EAAAA,aAAa,CAACgB,SAAd,CAAwBC,iBAAxB,GAA4C,YAAW;EACrD,KAAAC,OAAO,CACL,CAAC,KAAKf,KAAL,CAAWF,OADP,EAEL,wEACE,0EAHG,CAAP;EAKD,GAND;EAOD;;EC3BD;;;;MAGMkB;;;;;;;;;;;;;YACJlB,UAAUC,iBAAa,CAAC,MAAKC,KAAN;;;;;;WAEvBC,SAAA,kBAAS;EACP,WAAOT,6BAAC,MAAD;EAAQ,MAAA,OAAO,EAAE,KAAKM,OAAtB;EAA+B,MAAA,QAAQ,EAAE,KAAKE,KAAL,CAAWE;EAApD,MAAP;EACD;;;IALsBV,cAAK,CAACF;;AAQ/B,EAAa;EACX0B,EAAAA,UAAU,CAACb,SAAX,GAAuB;EACrBC,IAAAA,QAAQ,EAAEb,SAAS,CAACc,MADC;EAErBH,IAAAA,QAAQ,EAAEX,SAAS,CAACe,IAFC;EAGrBG,IAAAA,mBAAmB,EAAElB,SAAS,CAACmB,IAHV;EAIrBO,IAAAA,QAAQ,EAAE1B,SAAS,CAAC2B,KAAV,CAAgB,CAAC,UAAD,EAAa,SAAb,EAAwB,OAAxB,CAAhB;EAJW,GAAvB;;EAOAF,EAAAA,UAAU,CAACH,SAAX,CAAqBC,iBAArB,GAAyC,YAAW;EAClD,KAAAC,OAAO,CACL,CAAC,KAAKf,KAAL,CAAWF,OADP,EAEL,qEACE,uEAHG,CAAP;EAKD,GAND;EAOD;;EC9BM,IAAMqB,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,EAAD,EAAKC,eAAL;EAAA,SAC/B,OAAOD,EAAP,KAAc,UAAd,GAA2BA,EAAE,CAACC,eAAD,CAA7B,GAAiDD,EADlB;EAAA,CAA1B;AAGP,EAAO,IAAME,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACF,EAAD,EAAKC,eAAL,EAAyB;EAC1D,SAAO,OAAOD,EAAP,KAAc,QAAd,GACHG,cAAc,CAACH,EAAD,EAAK,IAAL,EAAW,IAAX,EAAiBC,eAAjB,CADX,GAEHD,EAFJ;EAGD,CAJM;;ECKP,IAAMI,cAAc,GAAG,SAAjBA,cAAiB,CAAAC,CAAC;EAAA,SAAIA,CAAJ;EAAA,CAAxB;;MACMC,aAAelC,eAAfkC;;EACN,IAAI,OAAOA,UAAP,KAAsB,WAA1B,EAAuC;EACrCA,EAAAA,UAAU,GAAGF,cAAb;EACD;;EAED,SAASG,eAAT,CAAyBC,KAAzB,EAAgC;EAC9B,SAAO,CAAC,EAAEA,KAAK,CAACC,OAAN,IAAiBD,KAAK,CAACE,MAAvB,IAAiCF,KAAK,CAACG,OAAvC,IAAkDH,KAAK,CAACI,QAA1D,CAAR;EACD;;EAED,IAAMC,UAAU,GAAGP,UAAU,CAC3B,gBAOEQ,YAPF,EAQK;EAAA,MANDC,QAMC,QANDA,QAMC;EAAA,MALDC,QAKC,QALDA,QAKC;EAAA,MAJDC,QAIC,QAJDA,OAIC;EAAA,MAHEC,IAGF;;EAAA,MACKC,MADL,GACgBD,IADhB,CACKC,MADL;;EAGH,MAAIvC,KAAK,gBACJsC,IADI;EAEPD,IAAAA,OAAO,EAAE,iBAAAT,KAAK,EAAI;EAChB,UAAI;EACF,YAAIS,QAAJ,EAAaA,QAAO,CAACT,KAAD,CAAP;EACd,OAFD,CAEE,OAAOY,EAAP,EAAW;EACXZ,QAAAA,KAAK,CAACa,cAAN;EACA,cAAMD,EAAN;EACD;;EAED,UACE,CAACZ,KAAK,CAACc,gBAAP;EACAd,MAAAA,KAAK,CAACe,MAAN,KAAiB,CADjB;EAEC,OAACJ,MAAD,IAAWA,MAAM,KAAK,OAFvB;EAGA,OAACZ,eAAe,CAACC,KAAD,CAJlB;EAAA,QAKE;EACAA,UAAAA,KAAK,CAACa,cAAN;EACAL,UAAAA,QAAQ;EACT;EACF;EAnBM,IAAT,CAHG;;;EA0BH,MAAIZ,cAAc,KAAKE,UAAvB,EAAmC;EACjC1B,IAAAA,KAAK,CAAC4C,GAAN,GAAYV,YAAY,IAAIC,QAA5B;EACD,GAFD,MAEO;EACLnC,IAAAA,KAAK,CAAC4C,GAAN,GAAYT,QAAZ;EACD;EAED;;;EACA,SAAO3C,kCAAOQ,KAAP,CAAP;EACD,CA3C0B,CAA7B;;AA8CA,EAAa;EACXiC,EAAAA,UAAU,CAACY,WAAX,GAAyB,YAAzB;EACD;EAED;;;;;EAGA,IAAMC,IAAI,GAAGpB,UAAU,CACrB,iBAQEQ,YARF,EASK;EAAA,8BAPDa,SAOC;EAAA,MAPDA,SAOC,gCAPWd,UAOX;EAAA,MANDe,OAMC,SANDA,OAMC;EAAA,MALD5B,EAKC,SALDA,EAKC;EAAA,MAJDe,QAIC,SAJDA,QAIC;EAAA,MAHEG,IAGF;;EACH,SACE9C,6BAACyD,OAAD,CAAe,QAAf,QACG,UAAAtD,OAAO,EAAI;EACV,KAAUA,OAAV,IAAAuD,SAAS,QAAU,8CAAV,CAAT,CAAA;EADU,QAGFpD,OAHE,GAGUH,OAHV,CAGFG,OAHE;EAKV,QAAMqD,QAAQ,GAAG7B,mBAAmB,CAClCH,iBAAiB,CAACC,EAAD,EAAKzB,OAAO,CAACwD,QAAb,CADiB,EAElCxD,OAAO,CAACwD,QAF0B,CAApC;EAKA,QAAMC,IAAI,GAAGD,QAAQ,GAAGrD,OAAO,CAACuD,UAAR,CAAmBF,QAAnB,CAAH,GAAkC,EAAvD;;EACA,QAAMnD,KAAK,gBACNsC,IADM;EAETc,MAAAA,IAAI,EAAJA,IAFS;EAGThB,MAAAA,QAHS,sBAGE;EACT,YAAMe,QAAQ,GAAGhC,iBAAiB,CAACC,EAAD,EAAKzB,OAAO,CAACwD,QAAb,CAAlC;EACA,YAAMG,MAAM,GAAGN,OAAO,GAAGlD,OAAO,CAACkD,OAAX,GAAqBlD,OAAO,CAACyD,IAAnD;EAEAD,QAAAA,MAAM,CAACH,QAAD,CAAN;EACD;EARQ,MAAX,CAXU;;;EAuBV,QAAI3B,cAAc,KAAKE,UAAvB,EAAmC;EACjC1B,MAAAA,KAAK,CAAC4C,GAAN,GAAYV,YAAY,IAAIC,QAA5B;EACD,KAFD,MAEO;EACLnC,MAAAA,KAAK,CAACmC,QAAN,GAAiBA,QAAjB;EACD;;EAED,WAAO3C,cAAK,CAACgE,aAAN,CAAoBT,SAApB,EAA+B/C,KAA/B,CAAP;EACD,GA/BH,CADF;EAmCD,CA9CoB,CAAvB;;AAiDA,EAAa;EACX,MAAMyD,MAAM,GAAGlE,SAAS,CAACmE,SAAV,CAAoB,CACjCnE,SAAS,CAACc,MADuB,EAEjCd,SAAS,CAACoE,MAFuB,EAGjCpE,SAAS,CAACmB,IAHuB,CAApB,CAAf;EAKA,MAAMkD,OAAO,GAAGrE,SAAS,CAACmE,SAAV,CAAoB,CAClCnE,SAAS,CAACc,MADwB,EAElCd,SAAS,CAACmB,IAFwB,EAGlCnB,SAAS,CAACsE,KAAV,CAAgB;EAAEC,IAAAA,OAAO,EAAEvE,SAAS,CAACwE;EAArB,GAAhB,CAHkC,CAApB,CAAhB;EAMAjB,EAAAA,IAAI,CAACD,WAAL,GAAmB,MAAnB;EAEAC,EAAAA,IAAI,CAAC3C,SAAL,GAAiB;EACfgC,IAAAA,QAAQ,EAAEyB,OADK;EAEfvB,IAAAA,OAAO,EAAE9C,SAAS,CAACmB,IAFJ;EAGfsC,IAAAA,OAAO,EAAEzD,SAAS,CAACiB,IAHJ;EAIf+B,IAAAA,MAAM,EAAEhD,SAAS,CAACc,MAJH;EAKfe,IAAAA,EAAE,EAAEqC,MAAM,CAACO;EALI,GAAjB;EAOD;;ECpID,IAAMxC,gBAAc,GAAG,SAAjBA,cAAiB,CAAAC,CAAC;EAAA,SAAIA,CAAJ;EAAA,CAAxB;;MACMC,eAAelC,eAAfkC;;EACN,IAAI,OAAOA,YAAP,KAAsB,WAA1B,EAAuC;EACrCA,EAAAA,YAAU,GAAGF,gBAAb;EACD;;EAED,SAASyC,cAAT,GAAuC;EAAA,oCAAZC,UAAY;EAAZA,IAAAA,UAAY;EAAA;;EACrC,SAAOA,UAAU,CAACC,MAAX,CAAkB,UAAAC,CAAC;EAAA,WAAIA,CAAJ;EAAA,GAAnB,EAA0BC,IAA1B,CAA+B,GAA/B,CAAP;EACD;EAED;;;;;EAGA,IAAMC,OAAO,GAAG5C,YAAU,CACxB,gBAgBEQ,YAhBF,EAiBK;EAAA,8BAfD,cAeC;EAAA,MAfeqC,WAef,iCAf6B,MAe7B;EAAA,kCAdDC,eAcC;EAAA,MAdDA,eAcC,qCAdiB,QAcjB;EAAA,MAbDC,WAaC,QAbDA,WAaC;EAAA,MAZUC,aAYV,QAZDC,SAYC;EAAA,MAXDC,KAWC,QAXDA,KAWC;EAAA,MAVSC,YAUT,QAVDC,QAUC;EAAA,MATSC,YAST,QATD5B,QASC;EAAA,MARD6B,SAQC,QARDA,SAQC;EAAA,MAPDC,MAOC,QAPDA,MAOC;EAAA,MANMC,SAMN,QANDC,KAMC;EAAA,MALD/D,EAKC,QALDA,EAKC;EAAA,MAJDe,QAIC,QAJDA,QAIC;EAAA,MAHEG,IAGF;;EACH,SACE9C,6BAACyD,OAAD,CAAe,QAAf,QACG,UAAAtD,OAAO,EAAI;EACV,KAAUA,OAAV,IAAAuD,SAAS,QAAU,iDAAV,CAAT,CAAA;EAEA,QAAM7B,eAAe,GAAG0D,YAAY,IAAIpF,OAAO,CAACwD,QAAhD;EACA,QAAMiC,UAAU,GAAG9D,mBAAmB,CACpCH,iBAAiB,CAACC,EAAD,EAAKC,eAAL,CADmB,EAEpCA,eAFoC,CAAtC;EAJU,QAQQgE,IARR,GAQiBD,UARjB,CAQFE,QARE;;EAUV,QAAMC,WAAW,GACfF,IAAI,IAAIA,IAAI,CAACrC,OAAL,CAAa,2BAAb,EAA0C,MAA1C,CADV;EAGA,QAAMwC,KAAK,GAAGD,WAAW,GACrBE,SAAS,CAACpE,eAAe,CAACiE,QAAjB,EAA2B;EAClCD,MAAAA,IAAI,EAAEE,WAD4B;EAElCX,MAAAA,KAAK,EAALA,KAFkC;EAGlCI,MAAAA,SAAS,EAATA,SAHkC;EAIlCC,MAAAA,MAAM,EAANA;EAJkC,KAA3B,CADY,GAOrB,IAPJ;EAQA,QAAMH,QAAQ,GAAG,CAAC,EAAED,YAAY,GAC5BA,YAAY,CAACW,KAAD,EAAQnE,eAAR,CADgB,GAE5BmE,KAFc,CAAlB;EAIA,QAAMb,SAAS,GAAGG,QAAQ,GACtBb,cAAc,CAACS,aAAD,EAAgBF,eAAhB,CADQ,GAEtBE,aAFJ;EAGA,QAAMS,KAAK,GAAGL,QAAQ,gBAAQI,SAAR,MAAsBT,WAAtB,IAAsCS,SAA5D;;EAEA,QAAMlF,KAAK;EACT,sBAAiB8E,QAAQ,IAAIP,WAAb,IAA6B,IADpC;EAETI,MAAAA,SAAS,EAATA,SAFS;EAGTQ,MAAAA,KAAK,EAALA,KAHS;EAIT/D,MAAAA,EAAE,EAAEgE;EAJK,OAKN9C,IALM,CAAX,CA9BU;;;EAuCV,QAAId,gBAAc,KAAKE,YAAvB,EAAmC;EACjC1B,MAAAA,KAAK,CAAC4C,GAAN,GAAYV,YAAY,IAAIC,QAA5B;EACD,KAFD,MAEO;EACLnC,MAAAA,KAAK,CAACmC,QAAN,GAAiBA,QAAjB;EACD;;EAED,WAAO3C,6BAAC,IAAD,EAAUQ,KAAV,CAAP;EACD,GA/CH,CADF;EAmDD,CAtEuB,CAA1B;;AAyEA,EAAa;EACXsE,EAAAA,OAAO,CAACzB,WAAR,GAAsB,SAAtB;EAEA,MAAM6C,eAAe,GAAGnG,SAAS,CAAC2B,KAAV,CAAgB,CACtC,MADsC,EAEtC,MAFsC,EAGtC,UAHsC,EAItC,MAJsC,EAKtC,MALsC,EAMtC,MANsC,CAAhB,CAAxB;EASAoD,EAAAA,OAAO,CAACnE,SAAR,gBACK2C,IAAI,CAAC3C,SADV;EAEE,oBAAgBuF,eAFlB;EAGElB,IAAAA,eAAe,EAAEjF,SAAS,CAACc,MAH7B;EAIEoE,IAAAA,WAAW,EAAElF,SAAS,CAACoE,MAJzB;EAKEgB,IAAAA,SAAS,EAAEpF,SAAS,CAACc,MALvB;EAMEuE,IAAAA,KAAK,EAAErF,SAAS,CAACiB,IANnB;EAOEsE,IAAAA,QAAQ,EAAEvF,SAAS,CAACmB,IAPtB;EAQEyC,IAAAA,QAAQ,EAAE5D,SAAS,CAACoE,MARtB;EASEqB,IAAAA,SAAS,EAAEzF,SAAS,CAACiB,IATvB;EAUEyE,IAAAA,MAAM,EAAE1F,SAAS,CAACiB,IAVpB;EAWE2E,IAAAA,KAAK,EAAE5F,SAAS,CAACoE;EAXnB;EAaD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/node_modules/react-router-dom/umd/react-router-dom.min.js b/node_modules/react-router-dom/umd/react-router-dom.min.js deleted file mode 100644 index aa995db..0000000 --- a/node_modules/react-router-dom/umd/react-router-dom.min.js +++ /dev/null @@ -1,2 +0,0 @@ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("react")):"function"==typeof define&&define.amd?define(["exports","react"],e):e((t=t||self).ReactRouterDOM={},t.React)}(this,function(t,c){"use strict";var C="default"in c?c.default:c;function r(t,e){t.prototype=Object.create(e.prototype),(t.prototype.constructor=t).__proto__=e}function e(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function n(t,e){return t(e={exports:{}},e.exports),e.exports}var o=n(function(t,e){Object.defineProperty(e,"__esModule",{value:!0});var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,o=n?Symbol.for("react.portal"):60106,i=n?Symbol.for("react.fragment"):60107,a=n?Symbol.for("react.strict_mode"):60108,c=n?Symbol.for("react.profiler"):60114,u=n?Symbol.for("react.provider"):60109,s=n?Symbol.for("react.context"):60110,f=n?Symbol.for("react.async_mode"):60111,l=n?Symbol.for("react.concurrent_mode"):60111,p=n?Symbol.for("react.forward_ref"):60112,h=n?Symbol.for("react.suspense"):60113,d=n?Symbol.for("react.suspense_list"):60120,v=n?Symbol.for("react.memo"):60115,y=n?Symbol.for("react.lazy"):60116,m=n?Symbol.for("react.fundamental"):60117,g=n?Symbol.for("react.responder"):60118;function w(t){if("object"==typeof t&&null!==t){var e=t.$$typeof;switch(e){case r:switch(t=t.type){case f:case l:case i:case c:case a:case h:return t;default:switch(t=t&&t.$$typeof){case s:case p:case u:return t;default:return e}}case y:case v:case o:return e}}}function b(t){return w(t)===l}e.typeOf=w,e.AsyncMode=f,e.ConcurrentMode=l,e.ContextConsumer=s,e.ContextProvider=u,e.Element=r,e.ForwardRef=p,e.Fragment=i,e.Lazy=y,e.Memo=v,e.Portal=o,e.Profiler=c,e.StrictMode=a,e.Suspense=h,e.isValidElementType=function(t){return"string"==typeof t||"function"==typeof t||t===i||t===l||t===c||t===a||t===h||t===d||"object"==typeof t&&null!==t&&(t.$$typeof===y||t.$$typeof===v||t.$$typeof===u||t.$$typeof===s||t.$$typeof===p||t.$$typeof===m||t.$$typeof===g)},e.isAsyncMode=function(t){return b(t)||w(t)===f},e.isConcurrentMode=b,e.isContextConsumer=function(t){return w(t)===s},e.isContextProvider=function(t){return w(t)===u},e.isElement=function(t){return"object"==typeof t&&null!==t&&t.$$typeof===r},e.isForwardRef=function(t){return w(t)===p},e.isFragment=function(t){return w(t)===i},e.isLazy=function(t){return w(t)===y},e.isMemo=function(t){return w(t)===v},e.isPortal=function(t){return w(t)===o},e.isProfiler=function(t){return w(t)===c},e.isStrictMode=function(t){return w(t)===a},e.isSuspense=function(t){return w(t)===h}});e(o);o.typeOf,o.AsyncMode,o.ConcurrentMode,o.ContextConsumer,o.ContextProvider,o.Element,o.ForwardRef,o.Fragment,o.Lazy,o.Memo,o.Portal,o.Profiler,o.StrictMode,o.Suspense,o.isValidElementType,o.isAsyncMode,o.isConcurrentMode,o.isContextConsumer,o.isContextProvider,o.isElement,o.isForwardRef,o.isFragment,o.isLazy,o.isMemo,o.isPortal,o.isProfiler,o.isStrictMode,o.isSuspense;var i=n(function(t,e){});e(i);i.typeOf,i.AsyncMode,i.ConcurrentMode,i.ContextConsumer,i.ContextProvider,i.Element,i.ForwardRef,i.Fragment,i.Lazy,i.Memo,i.Portal,i.Profiler,i.StrictMode,i.Suspense,i.isValidElementType,i.isAsyncMode,i.isConcurrentMode,i.isContextConsumer,i.isContextProvider,i.isElement,i.isForwardRef,i.isFragment,i.isLazy,i.isMemo,i.isPortal,i.isProfiler,i.isStrictMode,i.isSuspense;var a=n(function(t){t.exports=o}),u=(a.isValidElementType,Object.getOwnPropertySymbols),s=Object.prototype.hasOwnProperty,f=Object.prototype.propertyIsEnumerable;!function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},n=0;n<10;n++)e["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(e).map(function(t){return e[t]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(t){r[t]=t}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(t){return!1}}()||Object.assign,Function.call.bind(Object.prototype.hasOwnProperty);function l(){}function p(){}p.resetWarningCache=l;var h=n(function(t){t.exports=function(){function t(t,e,n,r,o,i){if("SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"!==i){var a=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw a.name="Invariant Violation",a}}function e(){return t}var n={array:t.isRequired=t,bool:t,func:t,number:t,object:t,string:t,symbol:t,any:t,arrayOf:e,element:t,elementType:t,instanceOf:e,node:t,objectOf:e,oneOf:e,oneOfType:e,shape:e,exact:e,checkPropTypes:p,resetWarningCache:l};return n.PropTypes=n}()});function T(){return(T=Object.assign||function(t){for(var e=1;ee?n.splice(e,n.length-e,r):n.push(r),f({action:"PUSH",location:r,index:e,entries:n})}})},replace:function(t,e){var n="REPLACE",r=L(t,e,l(),y.location);s.confirmTransitionTo(r,n,o,function(t){t&&(y.entries[y.index]=r,f({action:n,location:r}))})},go:v,goBack:function(){v(-1)},goForward:function(){v(1)},canGo:function(t){var e=y.index+t;return 0<=e&&e 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to) {\n var from = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n var toParts = to && to.split('/') || [];\n var fromParts = from && from.split('/') || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash = void 0;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) {\n fromParts.unshift('..');\n }if (mustEndAbs && fromParts[0] !== '' && (!fromParts[0] || !isAbsolute(fromParts[0]))) fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction valueEqual(a, b) {\n if (a === b) return true;\n\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n return Array.isArray(b) && a.length === b.length && a.every(function (item, index) {\n return valueEqual(item, b[index]);\n });\n }\n\n var aType = typeof a === 'undefined' ? 'undefined' : _typeof(a);\n var bType = typeof b === 'undefined' ? 'undefined' : _typeof(b);\n\n if (aType !== bType) return false;\n\n if (aType === 'object') {\n var aValue = a.valueOf();\n var bValue = b.valueOf();\n\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n var aKeys = Object.keys(a);\n var bKeys = Object.keys(b);\n\n if (aKeys.length !== bKeys.length) return false;\n\n return aKeys.every(function (key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n\nexport default valueEqual;","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n\n if (isProduction) {\n throw new Error(prefix);\n } else {\n throw new Error(prefix + \": \" + (message || ''));\n }\n}\n\nexport default invariant;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return new RegExp('^' + prefix + '(\\\\/|\\\\?|#|$)', 'i').test(path);\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n var hashIndex = window.location.href.indexOf('#');\n window.location.replace(window.location.href.slice(0, hashIndex >= 0 ? hashIndex : 0) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n return '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","export default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","import React, { Component } from 'react';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport warning from 'tiny-warning';\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {};\n\nfunction getUniqueId() {\n var key = '__global_unique_id__';\n return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1;\n}\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + getUniqueId() + '__';\n\n var Provider = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Provider, _Component);\n\n function Provider() {\n var _this;\n\n _this = _Component.apply(this, arguments) || this;\n _this.emitter = createEventEmitter(_this.props.value);\n return _this;\n }\n\n var _proto = Provider.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0;\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (process.env.NODE_ENV !== 'production') {\n warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: ' + changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes.object.isRequired, _Provider$childContex);\n\n var Consumer = /*#__PURE__*/function (_Component2) {\n _inheritsLoose(Consumer, _Component2);\n\n function Consumer() {\n var _this2;\n\n _this2 = _Component2.apply(this, arguments) || this;\n _this2.state = {\n value: _this2.getValue()\n };\n\n _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n };\n\n return _this2;\n }\n\n var _proto2 = Consumer.prototype;\n\n _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n _proto2.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n _proto2.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = PropTypes.object, _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nvar index = React.createContext || createReactContext;\n\nexport default index;\n","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = res[2] || defaultDelimiter\n var pattern = capture || group\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options))\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$')\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","'use strict';\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar ReactIs = require('react-is');\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\n\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\n\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\n\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\n\nvar TYPE_STATICS = {};\nTYPE_STATICS[ReactIs.ForwardRef] = FORWARD_REF_STATICS;\n\nfunction getStatics(component) {\n if (ReactIs.isMemo(component)) {\n return MEMO_STATICS;\n }\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\n\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n\n return targetComponent;\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","import _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { createMemoryHistory, createLocation, locationsAreEqual, createPath } from 'history';\nimport warning from 'tiny-warning';\nimport createContext from 'mini-create-react-context';\nimport invariant from 'tiny-invariant';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport pathToRegexp from 'path-to-regexp';\nimport { isValidElementType } from 'react-is';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport hoistStatics from 'hoist-non-react-statics';\n\n// TODO: Replace with React.createContext once we can assume React 16+\n\nvar createNamedContext = function createNamedContext(name) {\n var context = createContext();\n context.displayName = name;\n return context;\n};\n\nvar historyContext =\n/*#__PURE__*/\ncreateNamedContext(\"Router-History\");\n\n// TODO: Replace with React.createContext once we can assume React 16+\n\nvar createNamedContext$1 = function createNamedContext(name) {\n var context = createContext();\n context.displayName = name;\n return context;\n};\n\nvar context =\n/*#__PURE__*/\ncreateNamedContext$1(\"Router\");\n\n/**\n * The public API for putting history on context.\n */\n\nvar Router =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Router, _React$Component);\n\n Router.computeRootMatch = function computeRootMatch(pathname) {\n return {\n path: \"/\",\n url: \"/\",\n params: {},\n isExact: pathname === \"/\"\n };\n };\n\n function Router(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.state = {\n location: props.history.location\n }; // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n\n _this._isMounted = false;\n _this._pendingLocation = null;\n\n if (!props.staticContext) {\n _this.unlisten = props.history.listen(function (location) {\n if (_this._isMounted) {\n _this.setState({\n location: location\n });\n } else {\n _this._pendingLocation = location;\n }\n });\n }\n\n return _this;\n }\n\n var _proto = Router.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({\n location: this._pendingLocation\n });\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.unlisten) this.unlisten();\n };\n\n _proto.render = function render() {\n return React.createElement(context.Provider, {\n value: {\n history: this.props.history,\n location: this.state.location,\n match: Router.computeRootMatch(this.state.location.pathname),\n staticContext: this.props.staticContext\n }\n }, React.createElement(historyContext.Provider, {\n children: this.props.children || null,\n value: this.props.history\n }));\n };\n\n return Router;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function (prevProps) {\n process.env.NODE_ENV !== \"production\" ? warning(prevProps.history === this.props.history, \"You cannot change \") : void 0;\n };\n}\n\n/**\n * The public API for a that stores location in memory.\n */\n\nvar MemoryRouter =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(MemoryRouter, _React$Component);\n\n function MemoryRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.history = createMemoryHistory(_this.props);\n return _this;\n }\n\n var _proto = MemoryRouter.prototype;\n\n _proto.render = function render() {\n return React.createElement(Router, {\n history: this.history,\n children: this.props.children\n });\n };\n\n return MemoryRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \" ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\") : void 0;\n };\n}\n\nvar Lifecycle =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Lifecycle, _React$Component);\n\n function Lifecycle() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Lifecycle.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n };\n\n _proto.render = function render() {\n return null;\n };\n\n return Lifecycle;\n}(React.Component);\n\n/**\n * The public API for prompting the user before navigating away from a screen.\n */\n\nfunction Prompt(_ref) {\n var message = _ref.message,\n _ref$when = _ref.when,\n when = _ref$when === void 0 ? true : _ref$when;\n return React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n if (!when || context.staticContext) return null;\n var method = context.history.block;\n return React.createElement(Lifecycle, {\n onMount: function onMount(self) {\n self.release = method(message);\n },\n onUpdate: function onUpdate(self, prevProps) {\n if (prevProps.message !== message) {\n self.release();\n self.release = method(message);\n }\n },\n onUnmount: function onUnmount(self) {\n self.release();\n },\n message: message\n });\n });\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n var messageType = PropTypes.oneOfType([PropTypes.func, PropTypes.string]);\n Prompt.propTypes = {\n when: PropTypes.bool,\n message: messageType.isRequired\n };\n}\n\nvar cache = {};\nvar cacheLimit = 10000;\nvar cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n var generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\n\n\nfunction generatePath(path, params) {\n if (path === void 0) {\n path = \"/\";\n }\n\n if (params === void 0) {\n params = {};\n }\n\n return path === \"/\" ? path : compilePath(path)(params, {\n pretty: true\n });\n}\n\n/**\n * The public API for navigating programmatically with a component.\n */\n\nfunction Redirect(_ref) {\n var computedMatch = _ref.computedMatch,\n to = _ref.to,\n _ref$push = _ref.push,\n push = _ref$push === void 0 ? false : _ref$push;\n return React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var history = context.history,\n staticContext = context.staticContext;\n var method = push ? history.push : history.replace;\n var location = createLocation(computedMatch ? typeof to === \"string\" ? generatePath(to, computedMatch.params) : _extends({}, to, {\n pathname: generatePath(to.pathname, computedMatch.params)\n }) : to); // When rendering in a static context,\n // set the new location immediately.\n\n if (staticContext) {\n method(location);\n return null;\n }\n\n return React.createElement(Lifecycle, {\n onMount: function onMount() {\n method(location);\n },\n onUpdate: function onUpdate(self, prevProps) {\n var prevLocation = createLocation(prevProps.to);\n\n if (!locationsAreEqual(prevLocation, _extends({}, location, {\n key: prevLocation.key\n }))) {\n method(location);\n }\n },\n to: to\n });\n });\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nvar cache$1 = {};\nvar cacheLimit$1 = 10000;\nvar cacheCount$1 = 0;\n\nfunction compilePath$1(path, options) {\n var cacheKey = \"\" + options.end + options.strict + options.sensitive;\n var pathCache = cache$1[cacheKey] || (cache$1[cacheKey] = {});\n if (pathCache[path]) return pathCache[path];\n var keys = [];\n var regexp = pathToRegexp(path, keys, options);\n var result = {\n regexp: regexp,\n keys: keys\n };\n\n if (cacheCount$1 < cacheLimit$1) {\n pathCache[path] = result;\n cacheCount$1++;\n }\n\n return result;\n}\n/**\n * Public API for matching a URL pathname to a path.\n */\n\n\nfunction matchPath(pathname, options) {\n if (options === void 0) {\n options = {};\n }\n\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = {\n path: options\n };\n }\n\n var _options = options,\n path = _options.path,\n _options$exact = _options.exact,\n exact = _options$exact === void 0 ? false : _options$exact,\n _options$strict = _options.strict,\n strict = _options$strict === void 0 ? false : _options$strict,\n _options$sensitive = _options.sensitive,\n sensitive = _options$sensitive === void 0 ? false : _options$sensitive;\n var paths = [].concat(path);\n return paths.reduce(function (matched, path) {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n var _compilePath = compilePath$1(path, {\n end: exact,\n strict: strict,\n sensitive: sensitive\n }),\n regexp = _compilePath.regexp,\n keys = _compilePath.keys;\n\n var match = regexp.exec(pathname);\n if (!match) return null;\n var url = match[0],\n values = match.slice(1);\n var isExact = pathname === url;\n if (exact && !isExact) return null;\n return {\n path: path,\n // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url,\n // the matched portion of the URL\n isExact: isExact,\n // whether or not we matched exactly\n params: keys.reduce(function (memo, key, index) {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n var value = children(props);\n process.env.NODE_ENV !== \"production\" ? warning(value !== undefined, \"You returned `undefined` from the `children` function of \" + (\", but you \") + \"should have returned a React element or `null`\") : void 0;\n return value || null;\n}\n/**\n * The public API for matching a single path and rendering.\n */\n\n\nvar Route =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Route, _React$Component);\n\n function Route() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Route.prototype;\n\n _proto.render = function render() {\n var _this = this;\n\n return React.createElement(context.Consumer, null, function (context$1) {\n !context$1 ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var location = _this.props.location || context$1.location;\n var match = _this.props.computedMatch ? _this.props.computedMatch // already computed the match for us\n : _this.props.path ? matchPath(location.pathname, _this.props) : context$1.match;\n\n var props = _extends({}, context$1, {\n location: location,\n match: match\n });\n\n var _this$props = _this.props,\n children = _this$props.children,\n component = _this$props.component,\n render = _this$props.render; // Preact uses an empty array as children by\n // default, so use null if that's the case.\n\n if (Array.isArray(children) && children.length === 0) {\n children = null;\n }\n\n return React.createElement(context.Provider, {\n value: props\n }, props.match ? children ? typeof children === \"function\" ? process.env.NODE_ENV !== \"production\" ? evalChildrenDev(children, props, _this.props.path) : children(props) : children : component ? React.createElement(component, props) : render ? render(props) : null : typeof children === \"function\" ? process.env.NODE_ENV !== \"production\" ? evalChildrenDev(children, props, _this.props.path) : children(props) : null);\n });\n };\n\n return Route;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: function component(props, propName) {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\"Invalid prop 'component' supplied to 'Route': the prop is not a valid React component\");\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.component), \"You should not use and in the same route; will be ignored\") : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.render), \"You should not use and in the same route; will be ignored\") : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.component && this.props.render), \"You should not use and in the same route; will be ignored\") : void 0;\n };\n\n Route.prototype.componentDidUpdate = function (prevProps) {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.location && !prevProps.location), ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(!this.props.location && prevProps.location), ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.') : void 0;\n };\n}\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n return _extends({}, location, {\n pathname: addLeadingSlash(basename) + location.pathname\n });\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n var base = addLeadingSlash(basename);\n if (location.pathname.indexOf(base) !== 0) return location;\n return _extends({}, location, {\n pathname: location.pathname.substr(base.length)\n });\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return function () {\n process.env.NODE_ENV !== \"production\" ? invariant(false, \"You cannot %s with \", methodName) : invariant(false) ;\n };\n}\n\nfunction noop() {}\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\n\n\nvar StaticRouter =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(StaticRouter, _React$Component);\n\n function StaticRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _this.handlePush = function (location) {\n return _this.navigateTo(location, \"PUSH\");\n };\n\n _this.handleReplace = function (location) {\n return _this.navigateTo(location, \"REPLACE\");\n };\n\n _this.handleListen = function () {\n return noop;\n };\n\n _this.handleBlock = function () {\n return noop;\n };\n\n return _this;\n }\n\n var _proto = StaticRouter.prototype;\n\n _proto.navigateTo = function navigateTo(location, action) {\n var _this$props = this.props,\n _this$props$basename = _this$props.basename,\n basename = _this$props$basename === void 0 ? \"\" : _this$props$basename,\n _this$props$context = _this$props.context,\n context = _this$props$context === void 0 ? {} : _this$props$context;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n };\n\n _proto.render = function render() {\n var _this$props2 = this.props,\n _this$props2$basename = _this$props2.basename,\n basename = _this$props2$basename === void 0 ? \"\" : _this$props2$basename,\n _this$props2$context = _this$props2.context,\n context = _this$props2$context === void 0 ? {} : _this$props2$context,\n _this$props2$location = _this$props2.location,\n location = _this$props2$location === void 0 ? \"/\" : _this$props2$location,\n rest = _objectWithoutPropertiesLoose(_this$props2, [\"basename\", \"context\", \"location\"]);\n\n var history = {\n createHref: function createHref(path) {\n return addLeadingSlash(basename + createURL(path));\n },\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n return React.createElement(Router, _extends({}, rest, {\n history: history,\n staticContext: context\n }));\n };\n\n return StaticRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \" ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { StaticRouter as Router }`.\") : void 0;\n };\n}\n\n/**\n * The public API for rendering the first that matches.\n */\n\nvar Switch =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Switch, _React$Component);\n\n function Switch() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Switch.prototype;\n\n _proto.render = function render() {\n var _this = this;\n\n return React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var location = _this.props.location || context.location;\n var element, match; // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n\n React.Children.forEach(_this.props.children, function (child) {\n if (match == null && React.isValidElement(child)) {\n element = child;\n var path = child.props.path || child.props.from;\n match = path ? matchPath(location.pathname, _extends({}, child.props, {\n path: path\n })) : context.match;\n }\n });\n return match ? React.cloneElement(element, {\n location: location,\n computedMatch: match\n }) : null;\n });\n };\n\n return Switch;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function (prevProps) {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.location && !prevProps.location), ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(!this.props.location && prevProps.location), ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.') : void 0;\n };\n}\n\n/**\n * A public higher-order component to access the imperative API\n */\n\nfunction withRouter(Component) {\n var displayName = \"withRouter(\" + (Component.displayName || Component.name) + \")\";\n\n var C = function C(props) {\n var wrappedComponentRef = props.wrappedComponentRef,\n remainingProps = _objectWithoutPropertiesLoose(props, [\"wrappedComponentRef\"]);\n\n return React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use <\" + displayName + \" /> outside a \") : invariant(false) : void 0;\n return React.createElement(Component, _extends({}, remainingProps, context, {\n ref: wrappedComponentRef\n }));\n });\n };\n\n C.displayName = displayName;\n C.WrappedComponent = Component;\n\n if (process.env.NODE_ENV !== \"production\") {\n C.propTypes = {\n wrappedComponentRef: PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.object])\n };\n }\n\n return hoistStatics(C, Component);\n}\n\nvar useContext = React.useContext;\nfunction useHistory() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useHistory()\") : invariant(false) : void 0;\n }\n\n return useContext(historyContext);\n}\nfunction useLocation() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useLocation()\") : invariant(false) : void 0;\n }\n\n return useContext(context).location;\n}\nfunction useParams() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useParams()\") : invariant(false) : void 0;\n }\n\n var match = useContext(context).match;\n return match ? match.params : {};\n}\nfunction useRouteMatch(path) {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useRouteMatch()\") : invariant(false) : void 0;\n }\n\n var location = useLocation();\n var match = useContext(context).match;\n return path ? matchPath(location.pathname, path) : match;\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n if (typeof window !== \"undefined\") {\n var global = window;\n var key = \"__react_router_build__\";\n var buildNames = {\n cjs: \"CommonJS\",\n esm: \"ES modules\",\n umd: \"UMD\"\n };\n\n if (global[key] && global[key] !== \"esm\") {\n var initialBuildName = buildNames[global[key]];\n var secondaryBuildName = buildNames[\"esm\"]; // TODO: Add link to article that explains in detail how to avoid\n // loading 2 different builds.\n\n throw new Error(\"You are loading the \" + secondaryBuildName + \" build of React Router \" + (\"on a page that is already running the \" + initialBuildName + \" \") + \"build, so things won't work right.\");\n }\n\n global[key] = \"esm\";\n }\n}\n\nexport { MemoryRouter, Prompt, Redirect, Route, Router, StaticRouter, Switch, historyContext as __HistoryContext, context as __RouterContext, generatePath, matchPath, useHistory, useLocation, useParams, useRouteMatch, withRouter };\n//# sourceMappingURL=react-router.js.map\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n return ;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const method = replace ? history.replace : history.push;\n\n method(location);\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n );\n };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link.js\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\",\n activeStyle,\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n sensitive,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n sensitive,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n const className = isActive\n ? joinClassnames(classNameProp, activeClassName)\n : classNameProp;\n const style = isActive ? { ...styleProp, ...activeStyle } : styleProp;\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return ;\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.string,\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.object\n };\n}\n\nexport default NavLink;\n"],"names":["_inheritsLoose","subClass","superClass","prototype","Object","create","constructor","__proto__","defineProperty","exports","value","b","Symbol","for","c","d","e","f","g","h","k","l","m","n","p","q","r","t","v","w","x","a","u","$$typeof","type","y","module","require$$0","getOwnPropertySymbols","hasOwnProperty","propIsEnumerable","propertyIsEnumerable","assign","test1","String","getOwnPropertyNames","test2","i","fromCharCode","map","join","test3","split","forEach","letter","keys","err","shouldUseNative","Function","call","bind","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","props","propName","componentName","location","propFullName","secret","Error","name","getShim","ReactPropTypes","array","isRequired","bool","func","number","object","string","symbol","any","arrayOf","element","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","require$$2","_extends","target","arguments","length","source","key","apply","this","isAbsolute","pathname","charAt","spliceOne","list","index","pop","_typeof","iterator","obj","prefix","invariant","condition","addLeadingSlash","path","stripLeadingSlash","substr","stripBasename","RegExp","test","hasBasename","stripTrailingSlash","slice","createPath","search","hash","createLocation","state","currentLocation","hashIndex","indexOf","searchIndex","parsePath","undefined","decodeURI","URIError","to","from","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","concat","hasTrailingSlash","last","up","part","unshift","result","resolvePathname","locationsAreEqual","valueEqual","Array","isArray","every","item","aType","aValue","valueOf","bValue","aKeys","bKeys","createTransitionManager","prompt","listeners","setPrompt","nextPrompt","confirmTransitionTo","action","getUserConfirmation","callback","appendListener","fn","isActive","listener","push","filter","notifyListeners","_len","args","_key","canUseDOM","window","document","createElement","getConfirmation","message","confirm","PopStateEvent","HashChangeEvent","getHistoryState","history","createBrowserHistory","globalHistory","canUseHistory","ua","navigator","userAgent","supportsHistory","needsHashChangeListener","_props","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","basename","getDOMLocation","historyState","_ref","_window$location","createKey","Math","random","toString","transitionManager","setState","nextState","handlePopState","event","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","ok","fromLocation","toLocation","toIndex","allKeys","fromIndex","delta","go","revertPop","initialLocation","createHref","listenerCount","checkDOMListeners","addEventListener","removeEventListener","isBlocked","href","pushState","prevIndex","nextKeys","replace","replaceState","goBack","goForward","block","unblock","listen","unlisten","HashChangeEvent$1","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","getHashPath","substring","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","encodedPath","prevLocation","allPaths","lastIndexOf","pushHashPath","nextPaths","clamp","lowerBound","upperBound","min","max","MAX_SIGNED_31_BIT_INT","commonjsGlobal","globalThis","global","str","options","tokensToFunction","parse","React","createContext","defaultValue","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","getUniqueId","Provider","_Component","_this","emitter","handlers","on","handler","off","get","set","newValue","changedBits","createEventEmitter","_proto","getChildContext","componentWillReceiveProps","nextProps","oldValue","objectIs","render","children","Component","childContextTypes","Consumer","_Component2","_this2","getValue","onUpdate","observedBits","_proto2","componentDidMount","context","componentWillUnmount","onlyChild","contextTypes","arr","pathToRegexp","tokensToRegExp","PATH_REGEXP","res","group","tokens","defaultDelimiter","delimiter","exec","escaped","offset","next","capture","modifier","asterisk","partial","repeat","optional","pattern","escapeString","encodeURIComponentPretty","encodeURI","charCodeAt","toUpperCase","matches","opts","data","encode","pretty","encodeURIComponent","token","segment","TypeError","isarray","JSON","stringify","j","attachKeys","re","flags","sensitive","strict","end","route","endsWithDelimiter","groups","match","regexpToRegexp","parts","arrayToRegexp","stringToRegexp","_objectWithoutPropertiesLoose","excluded","sourceKeys","REACT_STATICS","contextType","defaultProps","displayName","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","component","ReactIs","isMemo","ForwardRef","getOwnPropertyDescriptor","getPrototypeOf","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","descriptor","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","entries","entry","nextIndex","nextEntries","splice","canGo","resolveToLocation","normalizeToLocation","forwardRefShim","C","BrowserRouter","createHistory","Router","HashRouter","forwardRef","LinkAnchor","forwardedRef","innerRef","navigate","onClick","rest","ex","preventDefault","defaultPrevented","button","metaKey","altKey","ctrlKey","shiftKey","isModifiedEvent","ref","Link","RouterContext","NavLink","ariaCurrent","activeClassName","activeStyle","classNameProp","className","isActiveProp","locationProp","styleProp","style","escapedPath","matchPath","classnames","joinClassnames"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/react-router-dom/warnAboutDeprecatedCJSRequire.js b/node_modules/react-router-dom/warnAboutDeprecatedCJSRequire.js deleted file mode 100644 index 30bb998..0000000 --- a/node_modules/react-router-dom/warnAboutDeprecatedCJSRequire.js +++ /dev/null @@ -1,36 +0,0 @@ -/* eslint-disable prefer-arrow-callback, no-empty */ -"use strict"; - -var printWarning = function() {}; - -if (process.env.NODE_ENV !== "production") { - printWarning = function(format, subs) { - var index = 0; - var message = - "Warning: " + - (subs.length > 0 - ? format.replace(/%s/g, function() { - return subs[index++]; - }) - : format); - - if (typeof console !== "undefined") { - console.error(message); - } - - try { - // --- Welcome to debugging React Router --- - // This error was thrown as a convenience so that you can use the - // stack trace to find the callsite that triggered this warning. - throw new Error(message); - } catch (e) {} - }; -} - -module.exports = function(member) { - printWarning( - 'Please use `require("react-router-dom").%s` instead of `require("react-router-dom/%s")`. ' + - "Support for the latter will be removed in the next major release.", - [member, member] - ); -}; diff --git a/node_modules/react-router-dom/withRouter.js b/node_modules/react-router-dom/withRouter.js deleted file mode 100644 index 214676a..0000000 --- a/node_modules/react-router-dom/withRouter.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -require("./warnAboutDeprecatedCJSRequire")("withRouter"); -module.exports = require("./index.js").withRouter; diff --git a/node_modules/react-router/LICENSE b/node_modules/react-router/LICENSE deleted file mode 100644 index dc15fe3..0000000 --- a/node_modules/react-router/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) React Training 2016-2018 - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/node_modules/react-router/MemoryRouter.js b/node_modules/react-router/MemoryRouter.js deleted file mode 100644 index 79b74bb..0000000 --- a/node_modules/react-router/MemoryRouter.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -require("./warnAboutDeprecatedCJSRequire")("MemoryRouter"); -module.exports = require("./index.js").MemoryRouter; diff --git a/node_modules/react-router/Prompt.js b/node_modules/react-router/Prompt.js deleted file mode 100644 index 20f629b..0000000 --- a/node_modules/react-router/Prompt.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -require("./warnAboutDeprecatedCJSRequire")("Prompt"); -module.exports = require("./index.js").Prompt; diff --git a/node_modules/react-router/README.md b/node_modules/react-router/README.md deleted file mode 100644 index 7cd1ec3..0000000 --- a/node_modules/react-router/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# react-router - -Declarative routing for [React](https://facebook.github.io/react). - -## Installation - -Using [npm](https://www.npmjs.com/): - - $ npm install --save react-router - -**Note:** This package provides the core routing functionality for React Router, but you might not want to install it directly. If you are writing an application that will run in the browser, you should instead install `react-router-dom`. Similarly, if you are writing a React Native application, you should instead install `react-router-native`. Both of those will install `react-router` as a dependency. - -Then with a module bundler like [webpack](https://webpack.github.io/), use as you would anything else: - -```js -// using ES6 modules -import { Router, Route, Switch } from "react-router"; - -// using CommonJS modules -var Router = require("react-router").Router; -var Route = require("react-router").Route; -var Switch = require("react-router").Switch; -``` - -The UMD build is also available on [unpkg](https://unpkg.com): - -```html - -``` - -You can find the library on `window.ReactRouter`. - -## Issues - -If you find a bug, please file an issue on [our issue tracker on GitHub](https://github.com/ReactTraining/react-router/issues). - -## Credits - -React Router is built and maintained by [React Training](https://reacttraining.com). diff --git a/node_modules/react-router/Redirect.js b/node_modules/react-router/Redirect.js deleted file mode 100644 index 6c763ab..0000000 --- a/node_modules/react-router/Redirect.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -require("./warnAboutDeprecatedCJSRequire")("Redirect"); -module.exports = require("./index.js").Redirect; diff --git a/node_modules/react-router/Route.js b/node_modules/react-router/Route.js deleted file mode 100644 index 0d3b1f5..0000000 --- a/node_modules/react-router/Route.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -require("./warnAboutDeprecatedCJSRequire")("Route"); -module.exports = require("./index.js").Route; diff --git a/node_modules/react-router/Router.js b/node_modules/react-router/Router.js deleted file mode 100644 index ca27b72..0000000 --- a/node_modules/react-router/Router.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -require("./warnAboutDeprecatedCJSRequire")("Router"); -module.exports = require("./index.js").Router; diff --git a/node_modules/react-router/StaticRouter.js b/node_modules/react-router/StaticRouter.js deleted file mode 100644 index 6bc3513..0000000 --- a/node_modules/react-router/StaticRouter.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -require("./warnAboutDeprecatedCJSRequire")("StaticRouter"); -module.exports = require("./index.js").StaticRouter; diff --git a/node_modules/react-router/Switch.js b/node_modules/react-router/Switch.js deleted file mode 100644 index a4b38eb..0000000 --- a/node_modules/react-router/Switch.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -require("./warnAboutDeprecatedCJSRequire")("Switch"); -module.exports = require("./index.js").Switch; diff --git a/node_modules/react-router/cjs/react-router.js b/node_modules/react-router/cjs/react-router.js deleted file mode 100644 index 52df7f2..0000000 --- a/node_modules/react-router/cjs/react-router.js +++ /dev/null @@ -1,825 +0,0 @@ -'use strict'; - -function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } - -var React = _interopDefault(require('react')); -var PropTypes = _interopDefault(require('prop-types')); -var history = require('history'); -var warning = _interopDefault(require('tiny-warning')); -var createContext = _interopDefault(require('mini-create-react-context')); -var invariant = _interopDefault(require('tiny-invariant')); -var pathToRegexp = _interopDefault(require('path-to-regexp')); -var reactIs = require('react-is'); -var hoistStatics = _interopDefault(require('hoist-non-react-statics')); - -function _extends() { - _extends = Object.assign || function (target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i]; - - for (var key in source) { - if (Object.prototype.hasOwnProperty.call(source, key)) { - target[key] = source[key]; - } - } - } - - return target; - }; - - return _extends.apply(this, arguments); -} - -function _inheritsLoose(subClass, superClass) { - subClass.prototype = Object.create(superClass.prototype); - subClass.prototype.constructor = subClass; - subClass.__proto__ = superClass; -} - -function _objectWithoutPropertiesLoose(source, excluded) { - if (source == null) return {}; - var target = {}; - var sourceKeys = Object.keys(source); - var key, i; - - for (i = 0; i < sourceKeys.length; i++) { - key = sourceKeys[i]; - if (excluded.indexOf(key) >= 0) continue; - target[key] = source[key]; - } - - return target; -} - -// TODO: Replace with React.createContext once we can assume React 16+ - -var createNamedContext = function createNamedContext(name) { - var context = createContext(); - context.displayName = name; - return context; -}; - -var historyContext = -/*#__PURE__*/ -createNamedContext("Router-History"); - -// TODO: Replace with React.createContext once we can assume React 16+ - -var createNamedContext$1 = function createNamedContext(name) { - var context = createContext(); - context.displayName = name; - return context; -}; - -var context = -/*#__PURE__*/ -createNamedContext$1("Router"); - -/** - * The public API for putting history on context. - */ - -var Router = -/*#__PURE__*/ -function (_React$Component) { - _inheritsLoose(Router, _React$Component); - - Router.computeRootMatch = function computeRootMatch(pathname) { - return { - path: "/", - url: "/", - params: {}, - isExact: pathname === "/" - }; - }; - - function Router(props) { - var _this; - - _this = _React$Component.call(this, props) || this; - _this.state = { - location: props.history.location - }; // This is a bit of a hack. We have to start listening for location - // changes here in the constructor in case there are any s - // on the initial render. If there are, they will replace/push when - // they mount and since cDM fires in children before parents, we may - // get a new location before the is mounted. - - _this._isMounted = false; - _this._pendingLocation = null; - - if (!props.staticContext) { - _this.unlisten = props.history.listen(function (location) { - if (_this._isMounted) { - _this.setState({ - location: location - }); - } else { - _this._pendingLocation = location; - } - }); - } - - return _this; - } - - var _proto = Router.prototype; - - _proto.componentDidMount = function componentDidMount() { - this._isMounted = true; - - if (this._pendingLocation) { - this.setState({ - location: this._pendingLocation - }); - } - }; - - _proto.componentWillUnmount = function componentWillUnmount() { - if (this.unlisten) this.unlisten(); - }; - - _proto.render = function render() { - return React.createElement(context.Provider, { - value: { - history: this.props.history, - location: this.state.location, - match: Router.computeRootMatch(this.state.location.pathname), - staticContext: this.props.staticContext - } - }, React.createElement(historyContext.Provider, { - children: this.props.children || null, - value: this.props.history - })); - }; - - return Router; -}(React.Component); - -{ - Router.propTypes = { - children: PropTypes.node, - history: PropTypes.object.isRequired, - staticContext: PropTypes.object - }; - - Router.prototype.componentDidUpdate = function (prevProps) { - warning(prevProps.history === this.props.history, "You cannot change ") ; - }; -} - -/** - * The public API for a that stores location in memory. - */ - -var MemoryRouter = -/*#__PURE__*/ -function (_React$Component) { - _inheritsLoose(MemoryRouter, _React$Component); - - function MemoryRouter() { - var _this; - - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this; - _this.history = history.createMemoryHistory(_this.props); - return _this; - } - - var _proto = MemoryRouter.prototype; - - _proto.render = function render() { - return React.createElement(Router, { - history: this.history, - children: this.props.children - }); - }; - - return MemoryRouter; -}(React.Component); - -{ - MemoryRouter.propTypes = { - initialEntries: PropTypes.array, - initialIndex: PropTypes.number, - getUserConfirmation: PropTypes.func, - keyLength: PropTypes.number, - children: PropTypes.node - }; - - MemoryRouter.prototype.componentDidMount = function () { - warning(!this.props.history, " ignores the history prop. To use a custom history, " + "use `import { Router }` instead of `import { MemoryRouter as Router }`.") ; - }; -} - -var Lifecycle = -/*#__PURE__*/ -function (_React$Component) { - _inheritsLoose(Lifecycle, _React$Component); - - function Lifecycle() { - return _React$Component.apply(this, arguments) || this; - } - - var _proto = Lifecycle.prototype; - - _proto.componentDidMount = function componentDidMount() { - if (this.props.onMount) this.props.onMount.call(this, this); - }; - - _proto.componentDidUpdate = function componentDidUpdate(prevProps) { - if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps); - }; - - _proto.componentWillUnmount = function componentWillUnmount() { - if (this.props.onUnmount) this.props.onUnmount.call(this, this); - }; - - _proto.render = function render() { - return null; - }; - - return Lifecycle; -}(React.Component); - -/** - * The public API for prompting the user before navigating away from a screen. - */ - -function Prompt(_ref) { - var message = _ref.message, - _ref$when = _ref.when, - when = _ref$when === void 0 ? true : _ref$when; - return React.createElement(context.Consumer, null, function (context) { - !context ? invariant(false, "You should not use outside a ") : void 0; - if (!when || context.staticContext) return null; - var method = context.history.block; - return React.createElement(Lifecycle, { - onMount: function onMount(self) { - self.release = method(message); - }, - onUpdate: function onUpdate(self, prevProps) { - if (prevProps.message !== message) { - self.release(); - self.release = method(message); - } - }, - onUnmount: function onUnmount(self) { - self.release(); - }, - message: message - }); - }); -} - -{ - var messageType = PropTypes.oneOfType([PropTypes.func, PropTypes.string]); - Prompt.propTypes = { - when: PropTypes.bool, - message: messageType.isRequired - }; -} - -var cache = {}; -var cacheLimit = 10000; -var cacheCount = 0; - -function compilePath(path) { - if (cache[path]) return cache[path]; - var generator = pathToRegexp.compile(path); - - if (cacheCount < cacheLimit) { - cache[path] = generator; - cacheCount++; - } - - return generator; -} -/** - * Public API for generating a URL pathname from a path and parameters. - */ - - -function generatePath(path, params) { - if (path === void 0) { - path = "/"; - } - - if (params === void 0) { - params = {}; - } - - return path === "/" ? path : compilePath(path)(params, { - pretty: true - }); -} - -/** - * The public API for navigating programmatically with a component. - */ - -function Redirect(_ref) { - var computedMatch = _ref.computedMatch, - to = _ref.to, - _ref$push = _ref.push, - push = _ref$push === void 0 ? false : _ref$push; - return React.createElement(context.Consumer, null, function (context) { - !context ? invariant(false, "You should not use outside a ") : void 0; - var history$1 = context.history, - staticContext = context.staticContext; - var method = push ? history$1.push : history$1.replace; - var location = history.createLocation(computedMatch ? typeof to === "string" ? generatePath(to, computedMatch.params) : _extends({}, to, { - pathname: generatePath(to.pathname, computedMatch.params) - }) : to); // When rendering in a static context, - // set the new location immediately. - - if (staticContext) { - method(location); - return null; - } - - return React.createElement(Lifecycle, { - onMount: function onMount() { - method(location); - }, - onUpdate: function onUpdate(self, prevProps) { - var prevLocation = history.createLocation(prevProps.to); - - if (!history.locationsAreEqual(prevLocation, _extends({}, location, { - key: prevLocation.key - }))) { - method(location); - } - }, - to: to - }); - }); -} - -{ - Redirect.propTypes = { - push: PropTypes.bool, - from: PropTypes.string, - to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired - }; -} - -var cache$1 = {}; -var cacheLimit$1 = 10000; -var cacheCount$1 = 0; - -function compilePath$1(path, options) { - var cacheKey = "" + options.end + options.strict + options.sensitive; - var pathCache = cache$1[cacheKey] || (cache$1[cacheKey] = {}); - if (pathCache[path]) return pathCache[path]; - var keys = []; - var regexp = pathToRegexp(path, keys, options); - var result = { - regexp: regexp, - keys: keys - }; - - if (cacheCount$1 < cacheLimit$1) { - pathCache[path] = result; - cacheCount$1++; - } - - return result; -} -/** - * Public API for matching a URL pathname to a path. - */ - - -function matchPath(pathname, options) { - if (options === void 0) { - options = {}; - } - - if (typeof options === "string" || Array.isArray(options)) { - options = { - path: options - }; - } - - var _options = options, - path = _options.path, - _options$exact = _options.exact, - exact = _options$exact === void 0 ? false : _options$exact, - _options$strict = _options.strict, - strict = _options$strict === void 0 ? false : _options$strict, - _options$sensitive = _options.sensitive, - sensitive = _options$sensitive === void 0 ? false : _options$sensitive; - var paths = [].concat(path); - return paths.reduce(function (matched, path) { - if (!path && path !== "") return null; - if (matched) return matched; - - var _compilePath = compilePath$1(path, { - end: exact, - strict: strict, - sensitive: sensitive - }), - regexp = _compilePath.regexp, - keys = _compilePath.keys; - - var match = regexp.exec(pathname); - if (!match) return null; - var url = match[0], - values = match.slice(1); - var isExact = pathname === url; - if (exact && !isExact) return null; - return { - path: path, - // the path used to match - url: path === "/" && url === "" ? "/" : url, - // the matched portion of the URL - isExact: isExact, - // whether or not we matched exactly - params: keys.reduce(function (memo, key, index) { - memo[key.name] = values[index]; - return memo; - }, {}) - }; - }, null); -} - -function isEmptyChildren(children) { - return React.Children.count(children) === 0; -} - -function evalChildrenDev(children, props, path) { - var value = children(props); - warning(value !== undefined, "You returned `undefined` from the `children` function of " + (", but you ") + "should have returned a React element or `null`") ; - return value || null; -} -/** - * The public API for matching a single path and rendering. - */ - - -var Route = -/*#__PURE__*/ -function (_React$Component) { - _inheritsLoose(Route, _React$Component); - - function Route() { - return _React$Component.apply(this, arguments) || this; - } - - var _proto = Route.prototype; - - _proto.render = function render() { - var _this = this; - - return React.createElement(context.Consumer, null, function (context$1) { - !context$1 ? invariant(false, "You should not use outside a ") : void 0; - var location = _this.props.location || context$1.location; - var match = _this.props.computedMatch ? _this.props.computedMatch // already computed the match for us - : _this.props.path ? matchPath(location.pathname, _this.props) : context$1.match; - - var props = _extends({}, context$1, { - location: location, - match: match - }); - - var _this$props = _this.props, - children = _this$props.children, - component = _this$props.component, - render = _this$props.render; // Preact uses an empty array as children by - // default, so use null if that's the case. - - if (Array.isArray(children) && children.length === 0) { - children = null; - } - - return React.createElement(context.Provider, { - value: props - }, props.match ? children ? typeof children === "function" ? evalChildrenDev(children, props, _this.props.path) : children : component ? React.createElement(component, props) : render ? render(props) : null : typeof children === "function" ? evalChildrenDev(children, props, _this.props.path) : null); - }); - }; - - return Route; -}(React.Component); - -{ - Route.propTypes = { - children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]), - component: function component(props, propName) { - if (props[propName] && !reactIs.isValidElementType(props[propName])) { - return new Error("Invalid prop 'component' supplied to 'Route': the prop is not a valid React component"); - } - }, - exact: PropTypes.bool, - location: PropTypes.object, - path: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), - render: PropTypes.func, - sensitive: PropTypes.bool, - strict: PropTypes.bool - }; - - Route.prototype.componentDidMount = function () { - warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.component), "You should not use and in the same route; will be ignored") ; - warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.render), "You should not use and in the same route; will be ignored") ; - warning(!(this.props.component && this.props.render), "You should not use and in the same route; will be ignored") ; - }; - - Route.prototype.componentDidUpdate = function (prevProps) { - warning(!(this.props.location && !prevProps.location), ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no "location" prop and then provided one on a subsequent render.') ; - warning(!(!this.props.location && prevProps.location), ' elements should not change from controlled to uncontrolled (or vice versa). You provided a "location" prop initially but omitted it on a subsequent render.') ; - }; -} - -function addLeadingSlash(path) { - return path.charAt(0) === "/" ? path : "/" + path; -} - -function addBasename(basename, location) { - if (!basename) return location; - return _extends({}, location, { - pathname: addLeadingSlash(basename) + location.pathname - }); -} - -function stripBasename(basename, location) { - if (!basename) return location; - var base = addLeadingSlash(basename); - if (location.pathname.indexOf(base) !== 0) return location; - return _extends({}, location, { - pathname: location.pathname.substr(base.length) - }); -} - -function createURL(location) { - return typeof location === "string" ? location : history.createPath(location); -} - -function staticHandler(methodName) { - return function () { - invariant(false, "You cannot %s with ", methodName) ; - }; -} - -function noop() {} -/** - * The public top-level API for a "static" , so-called because it - * can't actually change the current location. Instead, it just records - * location changes in a context object. Useful mainly in testing and - * server-rendering scenarios. - */ - - -var StaticRouter = -/*#__PURE__*/ -function (_React$Component) { - _inheritsLoose(StaticRouter, _React$Component); - - function StaticRouter() { - var _this; - - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this; - - _this.handlePush = function (location) { - return _this.navigateTo(location, "PUSH"); - }; - - _this.handleReplace = function (location) { - return _this.navigateTo(location, "REPLACE"); - }; - - _this.handleListen = function () { - return noop; - }; - - _this.handleBlock = function () { - return noop; - }; - - return _this; - } - - var _proto = StaticRouter.prototype; - - _proto.navigateTo = function navigateTo(location, action) { - var _this$props = this.props, - _this$props$basename = _this$props.basename, - basename = _this$props$basename === void 0 ? "" : _this$props$basename, - _this$props$context = _this$props.context, - context = _this$props$context === void 0 ? {} : _this$props$context; - context.action = action; - context.location = addBasename(basename, history.createLocation(location)); - context.url = createURL(context.location); - }; - - _proto.render = function render() { - var _this$props2 = this.props, - _this$props2$basename = _this$props2.basename, - basename = _this$props2$basename === void 0 ? "" : _this$props2$basename, - _this$props2$context = _this$props2.context, - context = _this$props2$context === void 0 ? {} : _this$props2$context, - _this$props2$location = _this$props2.location, - location = _this$props2$location === void 0 ? "/" : _this$props2$location, - rest = _objectWithoutPropertiesLoose(_this$props2, ["basename", "context", "location"]); - - var history$1 = { - createHref: function createHref(path) { - return addLeadingSlash(basename + createURL(path)); - }, - action: "POP", - location: stripBasename(basename, history.createLocation(location)), - push: this.handlePush, - replace: this.handleReplace, - go: staticHandler("go"), - goBack: staticHandler("goBack"), - goForward: staticHandler("goForward"), - listen: this.handleListen, - block: this.handleBlock - }; - return React.createElement(Router, _extends({}, rest, { - history: history$1, - staticContext: context - })); - }; - - return StaticRouter; -}(React.Component); - -{ - StaticRouter.propTypes = { - basename: PropTypes.string, - context: PropTypes.object, - location: PropTypes.oneOfType([PropTypes.string, PropTypes.object]) - }; - - StaticRouter.prototype.componentDidMount = function () { - warning(!this.props.history, " ignores the history prop. To use a custom history, " + "use `import { Router }` instead of `import { StaticRouter as Router }`.") ; - }; -} - -/** - * The public API for rendering the first that matches. - */ - -var Switch = -/*#__PURE__*/ -function (_React$Component) { - _inheritsLoose(Switch, _React$Component); - - function Switch() { - return _React$Component.apply(this, arguments) || this; - } - - var _proto = Switch.prototype; - - _proto.render = function render() { - var _this = this; - - return React.createElement(context.Consumer, null, function (context) { - !context ? invariant(false, "You should not use outside a ") : void 0; - var location = _this.props.location || context.location; - var element, match; // We use React.Children.forEach instead of React.Children.toArray().find() - // here because toArray adds keys to all child elements and we do not want - // to trigger an unmount/remount for two s that render the same - // component at different URLs. - - React.Children.forEach(_this.props.children, function (child) { - if (match == null && React.isValidElement(child)) { - element = child; - var path = child.props.path || child.props.from; - match = path ? matchPath(location.pathname, _extends({}, child.props, { - path: path - })) : context.match; - } - }); - return match ? React.cloneElement(element, { - location: location, - computedMatch: match - }) : null; - }); - }; - - return Switch; -}(React.Component); - -{ - Switch.propTypes = { - children: PropTypes.node, - location: PropTypes.object - }; - - Switch.prototype.componentDidUpdate = function (prevProps) { - warning(!(this.props.location && !prevProps.location), ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no "location" prop and then provided one on a subsequent render.') ; - warning(!(!this.props.location && prevProps.location), ' elements should not change from controlled to uncontrolled (or vice versa). You provided a "location" prop initially but omitted it on a subsequent render.') ; - }; -} - -/** - * A public higher-order component to access the imperative API - */ - -function withRouter(Component) { - var displayName = "withRouter(" + (Component.displayName || Component.name) + ")"; - - var C = function C(props) { - var wrappedComponentRef = props.wrappedComponentRef, - remainingProps = _objectWithoutPropertiesLoose(props, ["wrappedComponentRef"]); - - return React.createElement(context.Consumer, null, function (context) { - !context ? invariant(false, "You should not use <" + displayName + " /> outside a ") : void 0; - return React.createElement(Component, _extends({}, remainingProps, context, { - ref: wrappedComponentRef - })); - }); - }; - - C.displayName = displayName; - C.WrappedComponent = Component; - - { - C.propTypes = { - wrappedComponentRef: PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.object]) - }; - } - - return hoistStatics(C, Component); -} - -var useContext = React.useContext; -function useHistory() { - { - !(typeof useContext === "function") ? invariant(false, "You must use React >= 16.8 in order to use useHistory()") : void 0; - } - - return useContext(historyContext); -} -function useLocation() { - { - !(typeof useContext === "function") ? invariant(false, "You must use React >= 16.8 in order to use useLocation()") : void 0; - } - - return useContext(context).location; -} -function useParams() { - { - !(typeof useContext === "function") ? invariant(false, "You must use React >= 16.8 in order to use useParams()") : void 0; - } - - var match = useContext(context).match; - return match ? match.params : {}; -} -function useRouteMatch(path) { - { - !(typeof useContext === "function") ? invariant(false, "You must use React >= 16.8 in order to use useRouteMatch()") : void 0; - } - - var location = useLocation(); - var match = useContext(context).match; - return path ? matchPath(location.pathname, path) : match; -} - -{ - if (typeof window !== "undefined") { - var global = window; - var key = "__react_router_build__"; - var buildNames = { - cjs: "CommonJS", - esm: "ES modules", - umd: "UMD" - }; - - if (global[key] && global[key] !== "cjs") { - var initialBuildName = buildNames[global[key]]; - var secondaryBuildName = buildNames["cjs"]; // TODO: Add link to article that explains in detail how to avoid - // loading 2 different builds. - - throw new Error("You are loading the " + secondaryBuildName + " build of React Router " + ("on a page that is already running the " + initialBuildName + " ") + "build, so things won't work right."); - } - - global[key] = "cjs"; - } -} - -exports.MemoryRouter = MemoryRouter; -exports.Prompt = Prompt; -exports.Redirect = Redirect; -exports.Route = Route; -exports.Router = Router; -exports.StaticRouter = StaticRouter; -exports.Switch = Switch; -exports.__HistoryContext = historyContext; -exports.__RouterContext = context; -exports.generatePath = generatePath; -exports.matchPath = matchPath; -exports.useHistory = useHistory; -exports.useLocation = useLocation; -exports.useParams = useParams; -exports.useRouteMatch = useRouteMatch; -exports.withRouter = withRouter; -//# sourceMappingURL=react-router.js.map diff --git a/node_modules/react-router/cjs/react-router.js.map b/node_modules/react-router/cjs/react-router.js.map deleted file mode 100644 index aa7309d..0000000 --- a/node_modules/react-router/cjs/react-router.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"react-router.js","sources":["../modules/createNameContext.js","../modules/HistoryContext.js","../modules/RouterContext.js","../modules/Router.js","../modules/MemoryRouter.js","../modules/Lifecycle.js","../modules/Prompt.js","../modules/generatePath.js","../modules/Redirect.js","../modules/matchPath.js","../modules/Route.js","../modules/StaticRouter.js","../modules/Switch.js","../modules/withRouter.js","../modules/hooks.js","../modules/index.js"],"sourcesContent":["// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nexport default createNamedContext;\n","import createNamedContext from \"./createNameContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport HistoryContext from \"./HistoryContext.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n } else {\n this._pendingLocation = location;\n }\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) this.unlisten();\n }\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change \"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\n/**\n * The public API for a that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for prompting the user before navigating away from a screen.\n */\nfunction Prompt({ message, when = true }) {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n if (!when || context.staticContext) return null;\n\n const method = context.history.block;\n\n return (\n {\n self.release = method(message);\n }}\n onUpdate={(self, prevProps) => {\n if (prevProps.message !== message) {\n self.release();\n self.release = method(message);\n }\n }}\n onUnmount={self => {\n self.release();\n }}\n message={message}\n />\n );\n }}\n \n );\n}\n\nif (__DEV__) {\n const messageType = PropTypes.oneOfType([PropTypes.func, PropTypes.string]);\n\n Prompt.propTypes = {\n when: PropTypes.bool,\n message: messageType.isRequired\n };\n}\n\nexport default Prompt;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n\n const generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\nfunction generatePath(path = \"/\", params = {}) {\n return path === \"/\" ? path : compilePath(path)(params, { pretty: true });\n}\n\nexport default generatePath;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, locationsAreEqual } from \"history\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle.js\";\nimport RouterContext from \"./RouterContext.js\";\nimport generatePath from \"./generatePath.js\";\n\n/**\n * The public API for navigating programmatically with a component.\n */\nfunction Redirect({ computedMatch, to, push = false }) {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history, staticContext } = context;\n\n const method = push ? history.push : history.replace;\n const location = createLocation(\n computedMatch\n ? typeof to === \"string\"\n ? generatePath(to, computedMatch.params)\n : {\n ...to,\n pathname: generatePath(to.pathname, computedMatch.params)\n }\n : to\n );\n\n // When rendering in a static context,\n // set the new location immediately.\n if (staticContext) {\n method(location);\n return null;\n }\n\n return (\n {\n method(location);\n }}\n onUpdate={(self, prevProps) => {\n const prevLocation = createLocation(prevProps.to);\n if (\n !locationsAreEqual(prevLocation, {\n ...location,\n key: prevLocation.key\n })\n ) {\n method(location);\n }\n }}\n to={to}\n />\n );\n }}\n \n );\n}\n\nif (__DEV__) {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nexport default Redirect;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && children.length === 0) {\n children = null;\n }\n\n return (\n \n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n \n );\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use and in the same route; will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with \", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return ;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\n/**\n * The public API for rendering the first that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport hoistStatics from \"hoist-non-react-statics\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * A public higher-order component to access the imperative API\n */\nfunction withRouter(Component) {\n const displayName = `withRouter(${Component.displayName || Component.name})`;\n const C = props => {\n const { wrappedComponentRef, ...remainingProps } = props;\n\n return (\n \n {context => {\n invariant(\n context,\n `You should not use <${displayName} /> outside a `\n );\n return (\n \n );\n }}\n \n );\n };\n\n C.displayName = displayName;\n C.WrappedComponent = Component;\n\n if (__DEV__) {\n C.propTypes = {\n wrappedComponentRef: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.object\n ])\n };\n }\n\n return hoistStatics(C, Component);\n}\n\nexport default withRouter;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport Context from \"./RouterContext.js\";\nimport HistoryContext from \"./HistoryContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(HistoryContext);\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(Context).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(Context).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n const location = useLocation();\n const match = useContext(Context).match;\n\n return path ? matchPath(location.pathname, path) : match;\n}\n","if (__DEV__) {\n if (typeof window !== \"undefined\") {\n const global = window;\n const key = \"__react_router_build__\";\n const buildNames = { cjs: \"CommonJS\", esm: \"ES modules\", umd: \"UMD\" };\n\n if (global[key] && global[key] !== process.env.BUILD_FORMAT) {\n const initialBuildName = buildNames[global[key]];\n const secondaryBuildName = buildNames[process.env.BUILD_FORMAT];\n\n // TODO: Add link to article that explains in detail how to avoid\n // loading 2 different builds.\n throw new Error(\n `You are loading the ${secondaryBuildName} build of React Router ` +\n `on a page that is already running the ${initialBuildName} ` +\n `build, so things won't work right.`\n );\n }\n\n global[key] = process.env.BUILD_FORMAT;\n }\n}\n\nexport { default as MemoryRouter } from \"./MemoryRouter.js\";\nexport { default as Prompt } from \"./Prompt.js\";\nexport { default as Redirect } from \"./Redirect.js\";\nexport { default as Route } from \"./Route.js\";\nexport { default as Router } from \"./Router.js\";\nexport { default as StaticRouter } from \"./StaticRouter.js\";\nexport { default as Switch } from \"./Switch.js\";\nexport { default as generatePath } from \"./generatePath.js\";\nexport { default as matchPath } from \"./matchPath.js\";\nexport { default as withRouter } from \"./withRouter.js\";\n\nimport { useHistory, useLocation, useParams, useRouteMatch } from \"./hooks.js\";\nexport { useHistory, useLocation, useParams, useRouteMatch };\n\nexport { default as __HistoryContext } from \"./HistoryContext.js\";\nexport { default as __RouterContext } from \"./RouterContext.js\";\n"],"names":["createNamedContext","name","context","createContext","displayName","historyContext","Router","computeRootMatch","pathname","path","url","params","isExact","props","state","location","history","_isMounted","_pendingLocation","staticContext","unlisten","listen","setState","componentDidMount","componentWillUnmount","render","RouterContext","match","HistoryContext","children","React","Component","propTypes","PropTypes","node","object","isRequired","prototype","componentDidUpdate","prevProps","warning","MemoryRouter","createHistory","initialEntries","array","initialIndex","number","getUserConfirmation","func","keyLength","Lifecycle","onMount","call","onUpdate","onUnmount","Prompt","message","when","invariant","method","block","self","release","messageType","oneOfType","string","bool","cache","cacheLimit","cacheCount","compilePath","generator","pathToRegexp","compile","generatePath","pretty","Redirect","computedMatch","to","push","replace","createLocation","prevLocation","locationsAreEqual","key","from","options","cacheKey","end","strict","sensitive","pathCache","keys","regexp","result","matchPath","Array","isArray","exact","paths","concat","reduce","matched","exec","values","memo","index","isEmptyChildren","Children","count","evalChildrenDev","value","undefined","Route","component","length","createElement","propName","isValidElementType","Error","arrayOf","addLeadingSlash","charAt","addBasename","basename","stripBasename","base","indexOf","substr","createURL","createPath","staticHandler","methodName","noop","StaticRouter","handlePush","navigateTo","handleReplace","handleListen","handleBlock","action","rest","createHref","go","goBack","goForward","Switch","element","forEach","child","isValidElement","cloneElement","withRouter","C","wrappedComponentRef","remainingProps","WrappedComponent","hoistStatics","useContext","useHistory","useLocation","Context","useParams","useRouteMatch","window","global","buildNames","cjs","esm","umd","process","initialBuildName","secondaryBuildName"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/react-router/cjs/react-router.min.js b/node_modules/react-router/cjs/react-router.min.js deleted file mode 100644 index c0631ae..0000000 --- a/node_modules/react-router/cjs/react-router.min.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";function _interopDefault(t){return t&&"object"==typeof t&&"default"in t?t.default:t}Object.defineProperty(exports,"__esModule",{value:!0});var React=_interopDefault(require("react"));require("prop-types");var history=require("history");require("tiny-warning");var createContext=_interopDefault(require("mini-create-react-context")),invariant=_interopDefault(require("tiny-invariant")),pathToRegexp=_interopDefault(require("path-to-regexp"));require("react-is");var hoistStatics=_interopDefault(require("hoist-non-react-statics"));function _extends(){return(_extends=Object.assign||function(t){for(var e=1;e {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nexport default createNamedContext;\n","import createNamedContext from \"./createNameContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport HistoryContext from \"./HistoryContext.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n } else {\n this._pendingLocation = location;\n }\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) this.unlisten();\n }\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change \"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\n/**\n * The public API for a that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for prompting the user before navigating away from a screen.\n */\nfunction Prompt({ message, when = true }) {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n if (!when || context.staticContext) return null;\n\n const method = context.history.block;\n\n return (\n {\n self.release = method(message);\n }}\n onUpdate={(self, prevProps) => {\n if (prevProps.message !== message) {\n self.release();\n self.release = method(message);\n }\n }}\n onUnmount={self => {\n self.release();\n }}\n message={message}\n />\n );\n }}\n \n );\n}\n\nif (__DEV__) {\n const messageType = PropTypes.oneOfType([PropTypes.func, PropTypes.string]);\n\n Prompt.propTypes = {\n when: PropTypes.bool,\n message: messageType.isRequired\n };\n}\n\nexport default Prompt;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n\n const generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\nfunction generatePath(path = \"/\", params = {}) {\n return path === \"/\" ? path : compilePath(path)(params, { pretty: true });\n}\n\nexport default generatePath;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, locationsAreEqual } from \"history\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle.js\";\nimport RouterContext from \"./RouterContext.js\";\nimport generatePath from \"./generatePath.js\";\n\n/**\n * The public API for navigating programmatically with a component.\n */\nfunction Redirect({ computedMatch, to, push = false }) {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history, staticContext } = context;\n\n const method = push ? history.push : history.replace;\n const location = createLocation(\n computedMatch\n ? typeof to === \"string\"\n ? generatePath(to, computedMatch.params)\n : {\n ...to,\n pathname: generatePath(to.pathname, computedMatch.params)\n }\n : to\n );\n\n // When rendering in a static context,\n // set the new location immediately.\n if (staticContext) {\n method(location);\n return null;\n }\n\n return (\n {\n method(location);\n }}\n onUpdate={(self, prevProps) => {\n const prevLocation = createLocation(prevProps.to);\n if (\n !locationsAreEqual(prevLocation, {\n ...location,\n key: prevLocation.key\n })\n ) {\n method(location);\n }\n }}\n to={to}\n />\n );\n }}\n \n );\n}\n\nif (__DEV__) {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nexport default Redirect;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && children.length === 0) {\n children = null;\n }\n\n return (\n \n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n \n );\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use and in the same route; will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with \", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return ;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\n/**\n * The public API for rendering the first that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport hoistStatics from \"hoist-non-react-statics\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * A public higher-order component to access the imperative API\n */\nfunction withRouter(Component) {\n const displayName = `withRouter(${Component.displayName || Component.name})`;\n const C = props => {\n const { wrappedComponentRef, ...remainingProps } = props;\n\n return (\n \n {context => {\n invariant(\n context,\n `You should not use <${displayName} /> outside a `\n );\n return (\n \n );\n }}\n \n );\n };\n\n C.displayName = displayName;\n C.WrappedComponent = Component;\n\n if (__DEV__) {\n C.propTypes = {\n wrappedComponentRef: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.object\n ])\n };\n }\n\n return hoistStatics(C, Component);\n}\n\nexport default withRouter;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport Context from \"./RouterContext.js\";\nimport HistoryContext from \"./HistoryContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(HistoryContext);\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(Context).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(Context).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n const location = useLocation();\n const match = useContext(Context).match;\n\n return path ? matchPath(location.pathname, path) : match;\n}\n"],"names":["createNamedContext","name","context","createContext","displayName","historyContext","Router","props","state","location","history","_isMounted","_pendingLocation","staticContext","unlisten","listen","_this","setState","computeRootMatch","pathname","path","url","params","isExact","componentDidMount","this","componentWillUnmount","render","React","RouterContext","Provider","value","match","HistoryContext","children","Component","MemoryRouter","createHistory","Lifecycle","onMount","call","componentDidUpdate","prevProps","onUpdate","onUnmount","Prompt","message","when","Consumer","invariant","method","block","self","release","cache","cacheLimit","cacheCount","compilePath","generator","pathToRegexp","compile","generatePath","pretty","Redirect","computedMatch","to","push","replace","createLocation","prevLocation","locationsAreEqual","key","options","cacheKey","end","strict","sensitive","pathCache","keys","result","regexp","matchPath","Array","isArray","exact","concat","reduce","matched","exec","values","memo","index","Route","component","length","createElement","addLeadingSlash","charAt","addBasename","basename","stripBasename","base","indexOf","substr","createURL","createPath","staticHandler","methodName","noop","StaticRouter","handlePush","navigateTo","handleReplace","handleListen","handleBlock","action","rest","createHref","go","goBack","goForward","Switch","element","Children","forEach","child","isValidElement","from","cloneElement","withRouter","C","wrappedComponentRef","remainingProps","ref","WrappedComponent","hoistStatics","useContext","useHistory","useLocation","Context","useParams","useRouteMatch"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/react-router/es/MemoryRouter.js b/node_modules/react-router/es/MemoryRouter.js deleted file mode 100644 index bd2d9cf..0000000 --- a/node_modules/react-router/es/MemoryRouter.js +++ /dev/null @@ -1,5 +0,0 @@ -import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js"; -warnAboutDeprecatedESMImport("MemoryRouter"); - -import { MemoryRouter } from "../esm/react-router.js"; -export default MemoryRouter; diff --git a/node_modules/react-router/es/Prompt.js b/node_modules/react-router/es/Prompt.js deleted file mode 100644 index 2f890c8..0000000 --- a/node_modules/react-router/es/Prompt.js +++ /dev/null @@ -1,5 +0,0 @@ -import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js"; -warnAboutDeprecatedESMImport("Prompt"); - -import { Prompt } from "../esm/react-router.js"; -export default Prompt; diff --git a/node_modules/react-router/es/Redirect.js b/node_modules/react-router/es/Redirect.js deleted file mode 100644 index 7a67bed..0000000 --- a/node_modules/react-router/es/Redirect.js +++ /dev/null @@ -1,5 +0,0 @@ -import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js"; -warnAboutDeprecatedESMImport("Redirect"); - -import { Redirect } from "../esm/react-router.js"; -export default Redirect; diff --git a/node_modules/react-router/es/Route.js b/node_modules/react-router/es/Route.js deleted file mode 100644 index 6f73da6..0000000 --- a/node_modules/react-router/es/Route.js +++ /dev/null @@ -1,5 +0,0 @@ -import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js"; -warnAboutDeprecatedESMImport("Route"); - -import { Route } from "../esm/react-router.js"; -export default Route; diff --git a/node_modules/react-router/es/Router.js b/node_modules/react-router/es/Router.js deleted file mode 100644 index bbf3be5..0000000 --- a/node_modules/react-router/es/Router.js +++ /dev/null @@ -1,5 +0,0 @@ -import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js"; -warnAboutDeprecatedESMImport("Router"); - -import { Router } from "../esm/react-router.js"; -export default Router; diff --git a/node_modules/react-router/es/StaticRouter.js b/node_modules/react-router/es/StaticRouter.js deleted file mode 100644 index 3edcf8b..0000000 --- a/node_modules/react-router/es/StaticRouter.js +++ /dev/null @@ -1,5 +0,0 @@ -import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js"; -warnAboutDeprecatedESMImport("StaticRouter"); - -import { StaticRouter } from "../esm/react-router.js"; -export default StaticRouter; diff --git a/node_modules/react-router/es/Switch.js b/node_modules/react-router/es/Switch.js deleted file mode 100644 index ab63228..0000000 --- a/node_modules/react-router/es/Switch.js +++ /dev/null @@ -1,5 +0,0 @@ -import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js"; -warnAboutDeprecatedESMImport("Switch"); - -import { Switch } from "../esm/react-router.js"; -export default Switch; diff --git a/node_modules/react-router/es/generatePath.js b/node_modules/react-router/es/generatePath.js deleted file mode 100644 index d4d80c9..0000000 --- a/node_modules/react-router/es/generatePath.js +++ /dev/null @@ -1,5 +0,0 @@ -import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js"; -warnAboutDeprecatedESMImport("generatePath"); - -import { generatePath } from "../esm/react-router.js"; -export default generatePath; diff --git a/node_modules/react-router/es/matchPath.js b/node_modules/react-router/es/matchPath.js deleted file mode 100644 index 6103001..0000000 --- a/node_modules/react-router/es/matchPath.js +++ /dev/null @@ -1,5 +0,0 @@ -import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js"; -warnAboutDeprecatedESMImport("matchPath"); - -import { matchPath } from "../esm/react-router.js"; -export default matchPath; diff --git a/node_modules/react-router/es/warnAboutDeprecatedESMImport.js b/node_modules/react-router/es/warnAboutDeprecatedESMImport.js deleted file mode 100644 index 78e0b56..0000000 --- a/node_modules/react-router/es/warnAboutDeprecatedESMImport.js +++ /dev/null @@ -1,34 +0,0 @@ -/* eslint-disable prefer-arrow-callback, no-empty */ -var printWarning = function() {}; - -if (process.env.NODE_ENV !== "production") { - printWarning = function(format, subs) { - var index = 0; - var message = - "Warning: " + - (subs.length > 0 - ? format.replace(/%s/g, function() { - return subs[index++]; - }) - : format); - - if (typeof console !== "undefined") { - console.error(message); - } - - try { - // --- Welcome to debugging React Router --- - // This error was thrown as a convenience so that you can use the - // stack trace to find the callsite that triggered this warning. - throw new Error(message); - } catch (e) {} - }; -} - -export default function(member) { - printWarning( - 'Please use `import { %s } from "react-router"` instead of `import %s from "react-router/es/%s"`. ' + - "Support for the latter will be removed in the next major release.", - [member, member] - ); -} diff --git a/node_modules/react-router/es/withRouter.js b/node_modules/react-router/es/withRouter.js deleted file mode 100644 index 95ea34d..0000000 --- a/node_modules/react-router/es/withRouter.js +++ /dev/null @@ -1,5 +0,0 @@ -import warnAboutDeprecatedESMImport from "./warnAboutDeprecatedESMImport.js"; -warnAboutDeprecatedESMImport("withRouter"); - -import { withRouter } from "../esm/react-router.js"; -export default withRouter; diff --git a/node_modules/react-router/esm/react-router.js b/node_modules/react-router/esm/react-router.js deleted file mode 100644 index 505cfcf..0000000 --- a/node_modules/react-router/esm/react-router.js +++ /dev/null @@ -1,770 +0,0 @@ -import _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose'; -import React from 'react'; -import PropTypes from 'prop-types'; -import { createMemoryHistory, createLocation, locationsAreEqual, createPath } from 'history'; -import warning from 'tiny-warning'; -import createContext from 'mini-create-react-context'; -import invariant from 'tiny-invariant'; -import _extends from '@babel/runtime/helpers/esm/extends'; -import pathToRegexp from 'path-to-regexp'; -import { isValidElementType } from 'react-is'; -import _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose'; -import hoistStatics from 'hoist-non-react-statics'; - -// TODO: Replace with React.createContext once we can assume React 16+ - -var createNamedContext = function createNamedContext(name) { - var context = createContext(); - context.displayName = name; - return context; -}; - -var historyContext = -/*#__PURE__*/ -createNamedContext("Router-History"); - -// TODO: Replace with React.createContext once we can assume React 16+ - -var createNamedContext$1 = function createNamedContext(name) { - var context = createContext(); - context.displayName = name; - return context; -}; - -var context = -/*#__PURE__*/ -createNamedContext$1("Router"); - -/** - * The public API for putting history on context. - */ - -var Router = -/*#__PURE__*/ -function (_React$Component) { - _inheritsLoose(Router, _React$Component); - - Router.computeRootMatch = function computeRootMatch(pathname) { - return { - path: "/", - url: "/", - params: {}, - isExact: pathname === "/" - }; - }; - - function Router(props) { - var _this; - - _this = _React$Component.call(this, props) || this; - _this.state = { - location: props.history.location - }; // This is a bit of a hack. We have to start listening for location - // changes here in the constructor in case there are any s - // on the initial render. If there are, they will replace/push when - // they mount and since cDM fires in children before parents, we may - // get a new location before the is mounted. - - _this._isMounted = false; - _this._pendingLocation = null; - - if (!props.staticContext) { - _this.unlisten = props.history.listen(function (location) { - if (_this._isMounted) { - _this.setState({ - location: location - }); - } else { - _this._pendingLocation = location; - } - }); - } - - return _this; - } - - var _proto = Router.prototype; - - _proto.componentDidMount = function componentDidMount() { - this._isMounted = true; - - if (this._pendingLocation) { - this.setState({ - location: this._pendingLocation - }); - } - }; - - _proto.componentWillUnmount = function componentWillUnmount() { - if (this.unlisten) this.unlisten(); - }; - - _proto.render = function render() { - return React.createElement(context.Provider, { - value: { - history: this.props.history, - location: this.state.location, - match: Router.computeRootMatch(this.state.location.pathname), - staticContext: this.props.staticContext - } - }, React.createElement(historyContext.Provider, { - children: this.props.children || null, - value: this.props.history - })); - }; - - return Router; -}(React.Component); - -if (process.env.NODE_ENV !== "production") { - Router.propTypes = { - children: PropTypes.node, - history: PropTypes.object.isRequired, - staticContext: PropTypes.object - }; - - Router.prototype.componentDidUpdate = function (prevProps) { - process.env.NODE_ENV !== "production" ? warning(prevProps.history === this.props.history, "You cannot change ") : void 0; - }; -} - -/** - * The public API for a that stores location in memory. - */ - -var MemoryRouter = -/*#__PURE__*/ -function (_React$Component) { - _inheritsLoose(MemoryRouter, _React$Component); - - function MemoryRouter() { - var _this; - - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this; - _this.history = createMemoryHistory(_this.props); - return _this; - } - - var _proto = MemoryRouter.prototype; - - _proto.render = function render() { - return React.createElement(Router, { - history: this.history, - children: this.props.children - }); - }; - - return MemoryRouter; -}(React.Component); - -if (process.env.NODE_ENV !== "production") { - MemoryRouter.propTypes = { - initialEntries: PropTypes.array, - initialIndex: PropTypes.number, - getUserConfirmation: PropTypes.func, - keyLength: PropTypes.number, - children: PropTypes.node - }; - - MemoryRouter.prototype.componentDidMount = function () { - process.env.NODE_ENV !== "production" ? warning(!this.props.history, " ignores the history prop. To use a custom history, " + "use `import { Router }` instead of `import { MemoryRouter as Router }`.") : void 0; - }; -} - -var Lifecycle = -/*#__PURE__*/ -function (_React$Component) { - _inheritsLoose(Lifecycle, _React$Component); - - function Lifecycle() { - return _React$Component.apply(this, arguments) || this; - } - - var _proto = Lifecycle.prototype; - - _proto.componentDidMount = function componentDidMount() { - if (this.props.onMount) this.props.onMount.call(this, this); - }; - - _proto.componentDidUpdate = function componentDidUpdate(prevProps) { - if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps); - }; - - _proto.componentWillUnmount = function componentWillUnmount() { - if (this.props.onUnmount) this.props.onUnmount.call(this, this); - }; - - _proto.render = function render() { - return null; - }; - - return Lifecycle; -}(React.Component); - -/** - * The public API for prompting the user before navigating away from a screen. - */ - -function Prompt(_ref) { - var message = _ref.message, - _ref$when = _ref.when, - when = _ref$when === void 0 ? true : _ref$when; - return React.createElement(context.Consumer, null, function (context) { - !context ? process.env.NODE_ENV !== "production" ? invariant(false, "You should not use outside a ") : invariant(false) : void 0; - if (!when || context.staticContext) return null; - var method = context.history.block; - return React.createElement(Lifecycle, { - onMount: function onMount(self) { - self.release = method(message); - }, - onUpdate: function onUpdate(self, prevProps) { - if (prevProps.message !== message) { - self.release(); - self.release = method(message); - } - }, - onUnmount: function onUnmount(self) { - self.release(); - }, - message: message - }); - }); -} - -if (process.env.NODE_ENV !== "production") { - var messageType = PropTypes.oneOfType([PropTypes.func, PropTypes.string]); - Prompt.propTypes = { - when: PropTypes.bool, - message: messageType.isRequired - }; -} - -var cache = {}; -var cacheLimit = 10000; -var cacheCount = 0; - -function compilePath(path) { - if (cache[path]) return cache[path]; - var generator = pathToRegexp.compile(path); - - if (cacheCount < cacheLimit) { - cache[path] = generator; - cacheCount++; - } - - return generator; -} -/** - * Public API for generating a URL pathname from a path and parameters. - */ - - -function generatePath(path, params) { - if (path === void 0) { - path = "/"; - } - - if (params === void 0) { - params = {}; - } - - return path === "/" ? path : compilePath(path)(params, { - pretty: true - }); -} - -/** - * The public API for navigating programmatically with a component. - */ - -function Redirect(_ref) { - var computedMatch = _ref.computedMatch, - to = _ref.to, - _ref$push = _ref.push, - push = _ref$push === void 0 ? false : _ref$push; - return React.createElement(context.Consumer, null, function (context) { - !context ? process.env.NODE_ENV !== "production" ? invariant(false, "You should not use outside a ") : invariant(false) : void 0; - var history = context.history, - staticContext = context.staticContext; - var method = push ? history.push : history.replace; - var location = createLocation(computedMatch ? typeof to === "string" ? generatePath(to, computedMatch.params) : _extends({}, to, { - pathname: generatePath(to.pathname, computedMatch.params) - }) : to); // When rendering in a static context, - // set the new location immediately. - - if (staticContext) { - method(location); - return null; - } - - return React.createElement(Lifecycle, { - onMount: function onMount() { - method(location); - }, - onUpdate: function onUpdate(self, prevProps) { - var prevLocation = createLocation(prevProps.to); - - if (!locationsAreEqual(prevLocation, _extends({}, location, { - key: prevLocation.key - }))) { - method(location); - } - }, - to: to - }); - }); -} - -if (process.env.NODE_ENV !== "production") { - Redirect.propTypes = { - push: PropTypes.bool, - from: PropTypes.string, - to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired - }; -} - -var cache$1 = {}; -var cacheLimit$1 = 10000; -var cacheCount$1 = 0; - -function compilePath$1(path, options) { - var cacheKey = "" + options.end + options.strict + options.sensitive; - var pathCache = cache$1[cacheKey] || (cache$1[cacheKey] = {}); - if (pathCache[path]) return pathCache[path]; - var keys = []; - var regexp = pathToRegexp(path, keys, options); - var result = { - regexp: regexp, - keys: keys - }; - - if (cacheCount$1 < cacheLimit$1) { - pathCache[path] = result; - cacheCount$1++; - } - - return result; -} -/** - * Public API for matching a URL pathname to a path. - */ - - -function matchPath(pathname, options) { - if (options === void 0) { - options = {}; - } - - if (typeof options === "string" || Array.isArray(options)) { - options = { - path: options - }; - } - - var _options = options, - path = _options.path, - _options$exact = _options.exact, - exact = _options$exact === void 0 ? false : _options$exact, - _options$strict = _options.strict, - strict = _options$strict === void 0 ? false : _options$strict, - _options$sensitive = _options.sensitive, - sensitive = _options$sensitive === void 0 ? false : _options$sensitive; - var paths = [].concat(path); - return paths.reduce(function (matched, path) { - if (!path && path !== "") return null; - if (matched) return matched; - - var _compilePath = compilePath$1(path, { - end: exact, - strict: strict, - sensitive: sensitive - }), - regexp = _compilePath.regexp, - keys = _compilePath.keys; - - var match = regexp.exec(pathname); - if (!match) return null; - var url = match[0], - values = match.slice(1); - var isExact = pathname === url; - if (exact && !isExact) return null; - return { - path: path, - // the path used to match - url: path === "/" && url === "" ? "/" : url, - // the matched portion of the URL - isExact: isExact, - // whether or not we matched exactly - params: keys.reduce(function (memo, key, index) { - memo[key.name] = values[index]; - return memo; - }, {}) - }; - }, null); -} - -function isEmptyChildren(children) { - return React.Children.count(children) === 0; -} - -function evalChildrenDev(children, props, path) { - var value = children(props); - process.env.NODE_ENV !== "production" ? warning(value !== undefined, "You returned `undefined` from the `children` function of " + (", but you ") + "should have returned a React element or `null`") : void 0; - return value || null; -} -/** - * The public API for matching a single path and rendering. - */ - - -var Route = -/*#__PURE__*/ -function (_React$Component) { - _inheritsLoose(Route, _React$Component); - - function Route() { - return _React$Component.apply(this, arguments) || this; - } - - var _proto = Route.prototype; - - _proto.render = function render() { - var _this = this; - - return React.createElement(context.Consumer, null, function (context$1) { - !context$1 ? process.env.NODE_ENV !== "production" ? invariant(false, "You should not use outside a ") : invariant(false) : void 0; - var location = _this.props.location || context$1.location; - var match = _this.props.computedMatch ? _this.props.computedMatch // already computed the match for us - : _this.props.path ? matchPath(location.pathname, _this.props) : context$1.match; - - var props = _extends({}, context$1, { - location: location, - match: match - }); - - var _this$props = _this.props, - children = _this$props.children, - component = _this$props.component, - render = _this$props.render; // Preact uses an empty array as children by - // default, so use null if that's the case. - - if (Array.isArray(children) && children.length === 0) { - children = null; - } - - return React.createElement(context.Provider, { - value: props - }, props.match ? children ? typeof children === "function" ? process.env.NODE_ENV !== "production" ? evalChildrenDev(children, props, _this.props.path) : children(props) : children : component ? React.createElement(component, props) : render ? render(props) : null : typeof children === "function" ? process.env.NODE_ENV !== "production" ? evalChildrenDev(children, props, _this.props.path) : children(props) : null); - }); - }; - - return Route; -}(React.Component); - -if (process.env.NODE_ENV !== "production") { - Route.propTypes = { - children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]), - component: function component(props, propName) { - if (props[propName] && !isValidElementType(props[propName])) { - return new Error("Invalid prop 'component' supplied to 'Route': the prop is not a valid React component"); - } - }, - exact: PropTypes.bool, - location: PropTypes.object, - path: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), - render: PropTypes.func, - sensitive: PropTypes.bool, - strict: PropTypes.bool - }; - - Route.prototype.componentDidMount = function () { - process.env.NODE_ENV !== "production" ? warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.component), "You should not use and in the same route; will be ignored") : void 0; - process.env.NODE_ENV !== "production" ? warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.render), "You should not use and in the same route; will be ignored") : void 0; - process.env.NODE_ENV !== "production" ? warning(!(this.props.component && this.props.render), "You should not use and in the same route; will be ignored") : void 0; - }; - - Route.prototype.componentDidUpdate = function (prevProps) { - process.env.NODE_ENV !== "production" ? warning(!(this.props.location && !prevProps.location), ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no "location" prop and then provided one on a subsequent render.') : void 0; - process.env.NODE_ENV !== "production" ? warning(!(!this.props.location && prevProps.location), ' elements should not change from controlled to uncontrolled (or vice versa). You provided a "location" prop initially but omitted it on a subsequent render.') : void 0; - }; -} - -function addLeadingSlash(path) { - return path.charAt(0) === "/" ? path : "/" + path; -} - -function addBasename(basename, location) { - if (!basename) return location; - return _extends({}, location, { - pathname: addLeadingSlash(basename) + location.pathname - }); -} - -function stripBasename(basename, location) { - if (!basename) return location; - var base = addLeadingSlash(basename); - if (location.pathname.indexOf(base) !== 0) return location; - return _extends({}, location, { - pathname: location.pathname.substr(base.length) - }); -} - -function createURL(location) { - return typeof location === "string" ? location : createPath(location); -} - -function staticHandler(methodName) { - return function () { - process.env.NODE_ENV !== "production" ? invariant(false, "You cannot %s with ", methodName) : invariant(false) ; - }; -} - -function noop() {} -/** - * The public top-level API for a "static" , so-called because it - * can't actually change the current location. Instead, it just records - * location changes in a context object. Useful mainly in testing and - * server-rendering scenarios. - */ - - -var StaticRouter = -/*#__PURE__*/ -function (_React$Component) { - _inheritsLoose(StaticRouter, _React$Component); - - function StaticRouter() { - var _this; - - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this; - - _this.handlePush = function (location) { - return _this.navigateTo(location, "PUSH"); - }; - - _this.handleReplace = function (location) { - return _this.navigateTo(location, "REPLACE"); - }; - - _this.handleListen = function () { - return noop; - }; - - _this.handleBlock = function () { - return noop; - }; - - return _this; - } - - var _proto = StaticRouter.prototype; - - _proto.navigateTo = function navigateTo(location, action) { - var _this$props = this.props, - _this$props$basename = _this$props.basename, - basename = _this$props$basename === void 0 ? "" : _this$props$basename, - _this$props$context = _this$props.context, - context = _this$props$context === void 0 ? {} : _this$props$context; - context.action = action; - context.location = addBasename(basename, createLocation(location)); - context.url = createURL(context.location); - }; - - _proto.render = function render() { - var _this$props2 = this.props, - _this$props2$basename = _this$props2.basename, - basename = _this$props2$basename === void 0 ? "" : _this$props2$basename, - _this$props2$context = _this$props2.context, - context = _this$props2$context === void 0 ? {} : _this$props2$context, - _this$props2$location = _this$props2.location, - location = _this$props2$location === void 0 ? "/" : _this$props2$location, - rest = _objectWithoutPropertiesLoose(_this$props2, ["basename", "context", "location"]); - - var history = { - createHref: function createHref(path) { - return addLeadingSlash(basename + createURL(path)); - }, - action: "POP", - location: stripBasename(basename, createLocation(location)), - push: this.handlePush, - replace: this.handleReplace, - go: staticHandler("go"), - goBack: staticHandler("goBack"), - goForward: staticHandler("goForward"), - listen: this.handleListen, - block: this.handleBlock - }; - return React.createElement(Router, _extends({}, rest, { - history: history, - staticContext: context - })); - }; - - return StaticRouter; -}(React.Component); - -if (process.env.NODE_ENV !== "production") { - StaticRouter.propTypes = { - basename: PropTypes.string, - context: PropTypes.object, - location: PropTypes.oneOfType([PropTypes.string, PropTypes.object]) - }; - - StaticRouter.prototype.componentDidMount = function () { - process.env.NODE_ENV !== "production" ? warning(!this.props.history, " ignores the history prop. To use a custom history, " + "use `import { Router }` instead of `import { StaticRouter as Router }`.") : void 0; - }; -} - -/** - * The public API for rendering the first that matches. - */ - -var Switch = -/*#__PURE__*/ -function (_React$Component) { - _inheritsLoose(Switch, _React$Component); - - function Switch() { - return _React$Component.apply(this, arguments) || this; - } - - var _proto = Switch.prototype; - - _proto.render = function render() { - var _this = this; - - return React.createElement(context.Consumer, null, function (context) { - !context ? process.env.NODE_ENV !== "production" ? invariant(false, "You should not use outside a ") : invariant(false) : void 0; - var location = _this.props.location || context.location; - var element, match; // We use React.Children.forEach instead of React.Children.toArray().find() - // here because toArray adds keys to all child elements and we do not want - // to trigger an unmount/remount for two s that render the same - // component at different URLs. - - React.Children.forEach(_this.props.children, function (child) { - if (match == null && React.isValidElement(child)) { - element = child; - var path = child.props.path || child.props.from; - match = path ? matchPath(location.pathname, _extends({}, child.props, { - path: path - })) : context.match; - } - }); - return match ? React.cloneElement(element, { - location: location, - computedMatch: match - }) : null; - }); - }; - - return Switch; -}(React.Component); - -if (process.env.NODE_ENV !== "production") { - Switch.propTypes = { - children: PropTypes.node, - location: PropTypes.object - }; - - Switch.prototype.componentDidUpdate = function (prevProps) { - process.env.NODE_ENV !== "production" ? warning(!(this.props.location && !prevProps.location), ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no "location" prop and then provided one on a subsequent render.') : void 0; - process.env.NODE_ENV !== "production" ? warning(!(!this.props.location && prevProps.location), ' elements should not change from controlled to uncontrolled (or vice versa). You provided a "location" prop initially but omitted it on a subsequent render.') : void 0; - }; -} - -/** - * A public higher-order component to access the imperative API - */ - -function withRouter(Component) { - var displayName = "withRouter(" + (Component.displayName || Component.name) + ")"; - - var C = function C(props) { - var wrappedComponentRef = props.wrappedComponentRef, - remainingProps = _objectWithoutPropertiesLoose(props, ["wrappedComponentRef"]); - - return React.createElement(context.Consumer, null, function (context) { - !context ? process.env.NODE_ENV !== "production" ? invariant(false, "You should not use <" + displayName + " /> outside a ") : invariant(false) : void 0; - return React.createElement(Component, _extends({}, remainingProps, context, { - ref: wrappedComponentRef - })); - }); - }; - - C.displayName = displayName; - C.WrappedComponent = Component; - - if (process.env.NODE_ENV !== "production") { - C.propTypes = { - wrappedComponentRef: PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.object]) - }; - } - - return hoistStatics(C, Component); -} - -var useContext = React.useContext; -function useHistory() { - if (process.env.NODE_ENV !== "production") { - !(typeof useContext === "function") ? process.env.NODE_ENV !== "production" ? invariant(false, "You must use React >= 16.8 in order to use useHistory()") : invariant(false) : void 0; - } - - return useContext(historyContext); -} -function useLocation() { - if (process.env.NODE_ENV !== "production") { - !(typeof useContext === "function") ? process.env.NODE_ENV !== "production" ? invariant(false, "You must use React >= 16.8 in order to use useLocation()") : invariant(false) : void 0; - } - - return useContext(context).location; -} -function useParams() { - if (process.env.NODE_ENV !== "production") { - !(typeof useContext === "function") ? process.env.NODE_ENV !== "production" ? invariant(false, "You must use React >= 16.8 in order to use useParams()") : invariant(false) : void 0; - } - - var match = useContext(context).match; - return match ? match.params : {}; -} -function useRouteMatch(path) { - if (process.env.NODE_ENV !== "production") { - !(typeof useContext === "function") ? process.env.NODE_ENV !== "production" ? invariant(false, "You must use React >= 16.8 in order to use useRouteMatch()") : invariant(false) : void 0; - } - - var location = useLocation(); - var match = useContext(context).match; - return path ? matchPath(location.pathname, path) : match; -} - -if (process.env.NODE_ENV !== "production") { - if (typeof window !== "undefined") { - var global = window; - var key = "__react_router_build__"; - var buildNames = { - cjs: "CommonJS", - esm: "ES modules", - umd: "UMD" - }; - - if (global[key] && global[key] !== "esm") { - var initialBuildName = buildNames[global[key]]; - var secondaryBuildName = buildNames["esm"]; // TODO: Add link to article that explains in detail how to avoid - // loading 2 different builds. - - throw new Error("You are loading the " + secondaryBuildName + " build of React Router " + ("on a page that is already running the " + initialBuildName + " ") + "build, so things won't work right."); - } - - global[key] = "esm"; - } -} - -export { MemoryRouter, Prompt, Redirect, Route, Router, StaticRouter, Switch, historyContext as __HistoryContext, context as __RouterContext, generatePath, matchPath, useHistory, useLocation, useParams, useRouteMatch, withRouter }; -//# sourceMappingURL=react-router.js.map diff --git a/node_modules/react-router/esm/react-router.js.map b/node_modules/react-router/esm/react-router.js.map deleted file mode 100644 index c73e6bf..0000000 --- a/node_modules/react-router/esm/react-router.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"react-router.js","sources":["../modules/createNameContext.js","../modules/HistoryContext.js","../modules/RouterContext.js","../modules/Router.js","../modules/MemoryRouter.js","../modules/Lifecycle.js","../modules/Prompt.js","../modules/generatePath.js","../modules/Redirect.js","../modules/matchPath.js","../modules/Route.js","../modules/StaticRouter.js","../modules/Switch.js","../modules/withRouter.js","../modules/hooks.js","../modules/index.js"],"sourcesContent":["// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nexport default createNamedContext;\n","import createNamedContext from \"./createNameContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport HistoryContext from \"./HistoryContext.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n } else {\n this._pendingLocation = location;\n }\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) this.unlisten();\n }\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change \"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\n/**\n * The public API for a that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for prompting the user before navigating away from a screen.\n */\nfunction Prompt({ message, when = true }) {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n if (!when || context.staticContext) return null;\n\n const method = context.history.block;\n\n return (\n {\n self.release = method(message);\n }}\n onUpdate={(self, prevProps) => {\n if (prevProps.message !== message) {\n self.release();\n self.release = method(message);\n }\n }}\n onUnmount={self => {\n self.release();\n }}\n message={message}\n />\n );\n }}\n \n );\n}\n\nif (__DEV__) {\n const messageType = PropTypes.oneOfType([PropTypes.func, PropTypes.string]);\n\n Prompt.propTypes = {\n when: PropTypes.bool,\n message: messageType.isRequired\n };\n}\n\nexport default Prompt;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n\n const generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\nfunction generatePath(path = \"/\", params = {}) {\n return path === \"/\" ? path : compilePath(path)(params, { pretty: true });\n}\n\nexport default generatePath;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, locationsAreEqual } from \"history\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle.js\";\nimport RouterContext from \"./RouterContext.js\";\nimport generatePath from \"./generatePath.js\";\n\n/**\n * The public API for navigating programmatically with a component.\n */\nfunction Redirect({ computedMatch, to, push = false }) {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history, staticContext } = context;\n\n const method = push ? history.push : history.replace;\n const location = createLocation(\n computedMatch\n ? typeof to === \"string\"\n ? generatePath(to, computedMatch.params)\n : {\n ...to,\n pathname: generatePath(to.pathname, computedMatch.params)\n }\n : to\n );\n\n // When rendering in a static context,\n // set the new location immediately.\n if (staticContext) {\n method(location);\n return null;\n }\n\n return (\n {\n method(location);\n }}\n onUpdate={(self, prevProps) => {\n const prevLocation = createLocation(prevProps.to);\n if (\n !locationsAreEqual(prevLocation, {\n ...location,\n key: prevLocation.key\n })\n ) {\n method(location);\n }\n }}\n to={to}\n />\n );\n }}\n \n );\n}\n\nif (__DEV__) {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nexport default Redirect;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && children.length === 0) {\n children = null;\n }\n\n return (\n \n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n \n );\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use and in the same route; will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with \", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return ;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\n/**\n * The public API for rendering the first that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport hoistStatics from \"hoist-non-react-statics\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * A public higher-order component to access the imperative API\n */\nfunction withRouter(Component) {\n const displayName = `withRouter(${Component.displayName || Component.name})`;\n const C = props => {\n const { wrappedComponentRef, ...remainingProps } = props;\n\n return (\n \n {context => {\n invariant(\n context,\n `You should not use <${displayName} /> outside a `\n );\n return (\n \n );\n }}\n \n );\n };\n\n C.displayName = displayName;\n C.WrappedComponent = Component;\n\n if (__DEV__) {\n C.propTypes = {\n wrappedComponentRef: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.object\n ])\n };\n }\n\n return hoistStatics(C, Component);\n}\n\nexport default withRouter;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport Context from \"./RouterContext.js\";\nimport HistoryContext from \"./HistoryContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(HistoryContext);\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(Context).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(Context).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n const location = useLocation();\n const match = useContext(Context).match;\n\n return path ? matchPath(location.pathname, path) : match;\n}\n","if (__DEV__) {\n if (typeof window !== \"undefined\") {\n const global = window;\n const key = \"__react_router_build__\";\n const buildNames = { cjs: \"CommonJS\", esm: \"ES modules\", umd: \"UMD\" };\n\n if (global[key] && global[key] !== process.env.BUILD_FORMAT) {\n const initialBuildName = buildNames[global[key]];\n const secondaryBuildName = buildNames[process.env.BUILD_FORMAT];\n\n // TODO: Add link to article that explains in detail how to avoid\n // loading 2 different builds.\n throw new Error(\n `You are loading the ${secondaryBuildName} build of React Router ` +\n `on a page that is already running the ${initialBuildName} ` +\n `build, so things won't work right.`\n );\n }\n\n global[key] = process.env.BUILD_FORMAT;\n }\n}\n\nexport { default as MemoryRouter } from \"./MemoryRouter.js\";\nexport { default as Prompt } from \"./Prompt.js\";\nexport { default as Redirect } from \"./Redirect.js\";\nexport { default as Route } from \"./Route.js\";\nexport { default as Router } from \"./Router.js\";\nexport { default as StaticRouter } from \"./StaticRouter.js\";\nexport { default as Switch } from \"./Switch.js\";\nexport { default as generatePath } from \"./generatePath.js\";\nexport { default as matchPath } from \"./matchPath.js\";\nexport { default as withRouter } from \"./withRouter.js\";\n\nimport { useHistory, useLocation, useParams, useRouteMatch } from \"./hooks.js\";\nexport { useHistory, useLocation, useParams, useRouteMatch };\n\nexport { default as __HistoryContext } from \"./HistoryContext.js\";\nexport { default as __RouterContext } from \"./RouterContext.js\";\n"],"names":["createNamedContext","name","context","createContext","displayName","historyContext","Router","computeRootMatch","pathname","path","url","params","isExact","props","state","location","history","_isMounted","_pendingLocation","staticContext","unlisten","listen","setState","componentDidMount","componentWillUnmount","render","RouterContext","match","HistoryContext","children","React","Component","propTypes","PropTypes","node","object","isRequired","prototype","componentDidUpdate","prevProps","warning","MemoryRouter","createHistory","initialEntries","array","initialIndex","number","getUserConfirmation","func","keyLength","Lifecycle","onMount","call","onUpdate","onUnmount","Prompt","message","when","invariant","method","block","self","release","messageType","oneOfType","string","bool","cache","cacheLimit","cacheCount","compilePath","generator","pathToRegexp","compile","generatePath","pretty","Redirect","computedMatch","to","push","replace","createLocation","prevLocation","locationsAreEqual","key","from","options","cacheKey","end","strict","sensitive","pathCache","keys","regexp","result","matchPath","Array","isArray","exact","paths","concat","reduce","matched","exec","values","memo","index","isEmptyChildren","Children","count","evalChildrenDev","value","undefined","Route","component","length","createElement","propName","isValidElementType","Error","arrayOf","addLeadingSlash","charAt","addBasename","basename","stripBasename","base","indexOf","substr","createURL","createPath","staticHandler","methodName","noop","StaticRouter","handlePush","navigateTo","handleReplace","handleListen","handleBlock","action","rest","createHref","go","goBack","goForward","Switch","element","forEach","child","isValidElement","cloneElement","withRouter","C","wrappedComponentRef","remainingProps","WrappedComponent","hoistStatics","useContext","useHistory","useLocation","Context","useParams","useRouteMatch","window","global","buildNames","cjs","esm","umd","process","initialBuildName","secondaryBuildName"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/react-router/generatePath.js b/node_modules/react-router/generatePath.js deleted file mode 100644 index d487dd2..0000000 --- a/node_modules/react-router/generatePath.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -require("./warnAboutDeprecatedCJSRequire")("generatePath"); -module.exports = require("./index.js").generatePath; diff --git a/node_modules/react-router/index.js b/node_modules/react-router/index.js deleted file mode 100644 index 3ebff74..0000000 --- a/node_modules/react-router/index.js +++ /dev/null @@ -1,7 +0,0 @@ -"use strict"; - -if (process.env.NODE_ENV === "production") { - module.exports = require("./cjs/react-router.min.js"); -} else { - module.exports = require("./cjs/react-router.js"); -} diff --git a/node_modules/react-router/matchPath.js b/node_modules/react-router/matchPath.js deleted file mode 100644 index 6d1fe33..0000000 --- a/node_modules/react-router/matchPath.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -require("./warnAboutDeprecatedCJSRequire")("matchPath"); -module.exports = require("./index.js").matchPath; diff --git a/node_modules/react-router/modules/HistoryContext.js b/node_modules/react-router/modules/HistoryContext.js deleted file mode 100644 index 3972fca..0000000 --- a/node_modules/react-router/modules/HistoryContext.js +++ /dev/null @@ -1,4 +0,0 @@ -import createNamedContext from "./createNameContext"; - -const historyContext = /*#__PURE__*/ createNamedContext("Router-History"); -export default historyContext; diff --git a/node_modules/react-router/modules/Lifecycle.js b/node_modules/react-router/modules/Lifecycle.js deleted file mode 100644 index a672c0e..0000000 --- a/node_modules/react-router/modules/Lifecycle.js +++ /dev/null @@ -1,21 +0,0 @@ -import React from "react"; - -class Lifecycle extends React.Component { - componentDidMount() { - if (this.props.onMount) this.props.onMount.call(this, this); - } - - componentDidUpdate(prevProps) { - if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps); - } - - componentWillUnmount() { - if (this.props.onUnmount) this.props.onUnmount.call(this, this); - } - - render() { - return null; - } -} - -export default Lifecycle; diff --git a/node_modules/react-router/modules/MemoryRouter.js b/node_modules/react-router/modules/MemoryRouter.js deleted file mode 100644 index 22f337f..0000000 --- a/node_modules/react-router/modules/MemoryRouter.js +++ /dev/null @@ -1,37 +0,0 @@ -import React from "react"; -import PropTypes from "prop-types"; -import { createMemoryHistory as createHistory } from "history"; -import warning from "tiny-warning"; - -import Router from "./Router.js"; - -/** - * The public API for a that stores location in memory. - */ -class MemoryRouter extends React.Component { - history = createHistory(this.props); - - render() { - return ; - } -} - -if (__DEV__) { - MemoryRouter.propTypes = { - initialEntries: PropTypes.array, - initialIndex: PropTypes.number, - getUserConfirmation: PropTypes.func, - keyLength: PropTypes.number, - children: PropTypes.node - }; - - MemoryRouter.prototype.componentDidMount = function() { - warning( - !this.props.history, - " ignores the history prop. To use a custom history, " + - "use `import { Router }` instead of `import { MemoryRouter as Router }`." - ); - }; -} - -export default MemoryRouter; diff --git a/node_modules/react-router/modules/Prompt.js b/node_modules/react-router/modules/Prompt.js deleted file mode 100644 index 5ddfb8a..0000000 --- a/node_modules/react-router/modules/Prompt.js +++ /dev/null @@ -1,52 +0,0 @@ -import React from "react"; -import PropTypes from "prop-types"; -import invariant from "tiny-invariant"; - -import Lifecycle from "./Lifecycle.js"; -import RouterContext from "./RouterContext.js"; - -/** - * The public API for prompting the user before navigating away from a screen. - */ -function Prompt({ message, when = true }) { - return ( - - {context => { - invariant(context, "You should not use outside a "); - - if (!when || context.staticContext) return null; - - const method = context.history.block; - - return ( - { - self.release = method(message); - }} - onUpdate={(self, prevProps) => { - if (prevProps.message !== message) { - self.release(); - self.release = method(message); - } - }} - onUnmount={self => { - self.release(); - }} - message={message} - /> - ); - }} - - ); -} - -if (__DEV__) { - const messageType = PropTypes.oneOfType([PropTypes.func, PropTypes.string]); - - Prompt.propTypes = { - when: PropTypes.bool, - message: messageType.isRequired - }; -} - -export default Prompt; diff --git a/node_modules/react-router/modules/Redirect.js b/node_modules/react-router/modules/Redirect.js deleted file mode 100644 index a2799a2..0000000 --- a/node_modules/react-router/modules/Redirect.js +++ /dev/null @@ -1,72 +0,0 @@ -import React from "react"; -import PropTypes from "prop-types"; -import { createLocation, locationsAreEqual } from "history"; -import invariant from "tiny-invariant"; - -import Lifecycle from "./Lifecycle.js"; -import RouterContext from "./RouterContext.js"; -import generatePath from "./generatePath.js"; - -/** - * The public API for navigating programmatically with a component. - */ -function Redirect({ computedMatch, to, push = false }) { - return ( - - {context => { - invariant(context, "You should not use outside a "); - - const { history, staticContext } = context; - - const method = push ? history.push : history.replace; - const location = createLocation( - computedMatch - ? typeof to === "string" - ? generatePath(to, computedMatch.params) - : { - ...to, - pathname: generatePath(to.pathname, computedMatch.params) - } - : to - ); - - // When rendering in a static context, - // set the new location immediately. - if (staticContext) { - method(location); - return null; - } - - return ( - { - method(location); - }} - onUpdate={(self, prevProps) => { - const prevLocation = createLocation(prevProps.to); - if ( - !locationsAreEqual(prevLocation, { - ...location, - key: prevLocation.key - }) - ) { - method(location); - } - }} - to={to} - /> - ); - }} - - ); -} - -if (__DEV__) { - Redirect.propTypes = { - push: PropTypes.bool, - from: PropTypes.string, - to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired - }; -} - -export default Redirect; diff --git a/node_modules/react-router/modules/Route.js b/node_modules/react-router/modules/Route.js deleted file mode 100644 index b35fae6..0000000 --- a/node_modules/react-router/modules/Route.js +++ /dev/null @@ -1,140 +0,0 @@ -import React from "react"; -import { isValidElementType } from "react-is"; -import PropTypes from "prop-types"; -import invariant from "tiny-invariant"; -import warning from "tiny-warning"; - -import RouterContext from "./RouterContext.js"; -import matchPath from "./matchPath.js"; - -function isEmptyChildren(children) { - return React.Children.count(children) === 0; -} - -function evalChildrenDev(children, props, path) { - const value = children(props); - - warning( - value !== undefined, - "You returned `undefined` from the `children` function of " + - `, but you ` + - "should have returned a React element or `null`" - ); - - return value || null; -} - -/** - * The public API for matching a single path and rendering. - */ -class Route extends React.Component { - render() { - return ( - - {context => { - invariant(context, "You should not use outside a "); - - const location = this.props.location || context.location; - const match = this.props.computedMatch - ? this.props.computedMatch // already computed the match for us - : this.props.path - ? matchPath(location.pathname, this.props) - : context.match; - - const props = { ...context, location, match }; - - let { children, component, render } = this.props; - - // Preact uses an empty array as children by - // default, so use null if that's the case. - if (Array.isArray(children) && children.length === 0) { - children = null; - } - - return ( - - {props.match - ? children - ? typeof children === "function" - ? __DEV__ - ? evalChildrenDev(children, props, this.props.path) - : children(props) - : children - : component - ? React.createElement(component, props) - : render - ? render(props) - : null - : typeof children === "function" - ? __DEV__ - ? evalChildrenDev(children, props, this.props.path) - : children(props) - : null} - - ); - }} - - ); - } -} - -if (__DEV__) { - Route.propTypes = { - children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]), - component: (props, propName) => { - if (props[propName] && !isValidElementType(props[propName])) { - return new Error( - `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component` - ); - } - }, - exact: PropTypes.bool, - location: PropTypes.object, - path: PropTypes.oneOfType([ - PropTypes.string, - PropTypes.arrayOf(PropTypes.string) - ]), - render: PropTypes.func, - sensitive: PropTypes.bool, - strict: PropTypes.bool - }; - - Route.prototype.componentDidMount = function() { - warning( - !( - this.props.children && - !isEmptyChildren(this.props.children) && - this.props.component - ), - "You should not use and in the same route; will be ignored" - ); - - warning( - !( - this.props.children && - !isEmptyChildren(this.props.children) && - this.props.render - ), - "You should not use and in the same route; will be ignored" - ); - - warning( - !(this.props.component && this.props.render), - "You should not use and in the same route; will be ignored" - ); - }; - - Route.prototype.componentDidUpdate = function(prevProps) { - warning( - !(this.props.location && !prevProps.location), - ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no "location" prop and then provided one on a subsequent render.' - ); - - warning( - !(!this.props.location && prevProps.location), - ' elements should not change from controlled to uncontrolled (or vice versa). You provided a "location" prop initially but omitted it on a subsequent render.' - ); - }; -} - -export default Route; diff --git a/node_modules/react-router/modules/Router.js b/node_modules/react-router/modules/Router.js deleted file mode 100644 index bf87ad2..0000000 --- a/node_modules/react-router/modules/Router.js +++ /dev/null @@ -1,88 +0,0 @@ -import React from "react"; -import PropTypes from "prop-types"; -import warning from "tiny-warning"; - -import HistoryContext from "./HistoryContext.js"; -import RouterContext from "./RouterContext.js"; - -/** - * The public API for putting history on context. - */ -class Router extends React.Component { - static computeRootMatch(pathname) { - return { path: "/", url: "/", params: {}, isExact: pathname === "/" }; - } - - constructor(props) { - super(props); - - this.state = { - location: props.history.location - }; - - // This is a bit of a hack. We have to start listening for location - // changes here in the constructor in case there are any s - // on the initial render. If there are, they will replace/push when - // they mount and since cDM fires in children before parents, we may - // get a new location before the is mounted. - this._isMounted = false; - this._pendingLocation = null; - - if (!props.staticContext) { - this.unlisten = props.history.listen(location => { - if (this._isMounted) { - this.setState({ location }); - } else { - this._pendingLocation = location; - } - }); - } - } - - componentDidMount() { - this._isMounted = true; - - if (this._pendingLocation) { - this.setState({ location: this._pendingLocation }); - } - } - - componentWillUnmount() { - if (this.unlisten) this.unlisten(); - } - - render() { - return ( - - - - ); - } -} - -if (__DEV__) { - Router.propTypes = { - children: PropTypes.node, - history: PropTypes.object.isRequired, - staticContext: PropTypes.object - }; - - Router.prototype.componentDidUpdate = function(prevProps) { - warning( - prevProps.history === this.props.history, - "You cannot change " - ); - }; -} - -export default Router; diff --git a/node_modules/react-router/modules/RouterContext.js b/node_modules/react-router/modules/RouterContext.js deleted file mode 100644 index 6a79df7..0000000 --- a/node_modules/react-router/modules/RouterContext.js +++ /dev/null @@ -1,12 +0,0 @@ -// TODO: Replace with React.createContext once we can assume React 16+ -import createContext from "mini-create-react-context"; - -const createNamedContext = name => { - const context = createContext(); - context.displayName = name; - - return context; -}; - -const context = /*#__PURE__*/ createNamedContext("Router"); -export default context; diff --git a/node_modules/react-router/modules/StaticRouter.js b/node_modules/react-router/modules/StaticRouter.js deleted file mode 100644 index 4edafaa..0000000 --- a/node_modules/react-router/modules/StaticRouter.js +++ /dev/null @@ -1,102 +0,0 @@ -import React from "react"; -import PropTypes from "prop-types"; -import { createLocation, createPath } from "history"; -import invariant from "tiny-invariant"; -import warning from "tiny-warning"; - -import Router from "./Router.js"; - -function addLeadingSlash(path) { - return path.charAt(0) === "/" ? path : "/" + path; -} - -function addBasename(basename, location) { - if (!basename) return location; - - return { - ...location, - pathname: addLeadingSlash(basename) + location.pathname - }; -} - -function stripBasename(basename, location) { - if (!basename) return location; - - const base = addLeadingSlash(basename); - - if (location.pathname.indexOf(base) !== 0) return location; - - return { - ...location, - pathname: location.pathname.substr(base.length) - }; -} - -function createURL(location) { - return typeof location === "string" ? location : createPath(location); -} - -function staticHandler(methodName) { - return () => { - invariant(false, "You cannot %s with ", methodName); - }; -} - -function noop() {} - -/** - * The public top-level API for a "static" , so-called because it - * can't actually change the current location. Instead, it just records - * location changes in a context object. Useful mainly in testing and - * server-rendering scenarios. - */ -class StaticRouter extends React.Component { - navigateTo(location, action) { - const { basename = "", context = {} } = this.props; - context.action = action; - context.location = addBasename(basename, createLocation(location)); - context.url = createURL(context.location); - } - - handlePush = location => this.navigateTo(location, "PUSH"); - handleReplace = location => this.navigateTo(location, "REPLACE"); - handleListen = () => noop; - handleBlock = () => noop; - - render() { - const { basename = "", context = {}, location = "/", ...rest } = this.props; - - const history = { - createHref: path => addLeadingSlash(basename + createURL(path)), - action: "POP", - location: stripBasename(basename, createLocation(location)), - push: this.handlePush, - replace: this.handleReplace, - go: staticHandler("go"), - goBack: staticHandler("goBack"), - goForward: staticHandler("goForward"), - listen: this.handleListen, - block: this.handleBlock - }; - - return ; - } -} - -if (__DEV__) { - StaticRouter.propTypes = { - basename: PropTypes.string, - context: PropTypes.object, - location: PropTypes.oneOfType([PropTypes.string, PropTypes.object]) - }; - - StaticRouter.prototype.componentDidMount = function() { - warning( - !this.props.history, - " ignores the history prop. To use a custom history, " + - "use `import { Router }` instead of `import { StaticRouter as Router }`." - ); - }; -} - -export default StaticRouter; diff --git a/node_modules/react-router/modules/Switch.js b/node_modules/react-router/modules/Switch.js deleted file mode 100644 index 3033276..0000000 --- a/node_modules/react-router/modules/Switch.js +++ /dev/null @@ -1,67 +0,0 @@ -import React from "react"; -import PropTypes from "prop-types"; -import invariant from "tiny-invariant"; -import warning from "tiny-warning"; - -import RouterContext from "./RouterContext.js"; -import matchPath from "./matchPath.js"; - -/** - * The public API for rendering the first that matches. - */ -class Switch extends React.Component { - render() { - return ( - - {context => { - invariant(context, "You should not use outside a "); - - const location = this.props.location || context.location; - - let element, match; - - // We use React.Children.forEach instead of React.Children.toArray().find() - // here because toArray adds keys to all child elements and we do not want - // to trigger an unmount/remount for two s that render the same - // component at different URLs. - React.Children.forEach(this.props.children, child => { - if (match == null && React.isValidElement(child)) { - element = child; - - const path = child.props.path || child.props.from; - - match = path - ? matchPath(location.pathname, { ...child.props, path }) - : context.match; - } - }); - - return match - ? React.cloneElement(element, { location, computedMatch: match }) - : null; - }} - - ); - } -} - -if (__DEV__) { - Switch.propTypes = { - children: PropTypes.node, - location: PropTypes.object - }; - - Switch.prototype.componentDidUpdate = function(prevProps) { - warning( - !(this.props.location && !prevProps.location), - ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no "location" prop and then provided one on a subsequent render.' - ); - - warning( - !(!this.props.location && prevProps.location), - ' elements should not change from controlled to uncontrolled (or vice versa). You provided a "location" prop initially but omitted it on a subsequent render.' - ); - }; -} - -export default Switch; diff --git a/node_modules/react-router/modules/createNameContext.js b/node_modules/react-router/modules/createNameContext.js deleted file mode 100644 index 36e1baa..0000000 --- a/node_modules/react-router/modules/createNameContext.js +++ /dev/null @@ -1,11 +0,0 @@ -// TODO: Replace with React.createContext once we can assume React 16+ -import createContext from "mini-create-react-context"; - -const createNamedContext = name => { - const context = createContext(); - context.displayName = name; - - return context; -}; - -export default createNamedContext; diff --git a/node_modules/react-router/modules/generatePath.js b/node_modules/react-router/modules/generatePath.js deleted file mode 100644 index eba97a1..0000000 --- a/node_modules/react-router/modules/generatePath.js +++ /dev/null @@ -1,27 +0,0 @@ -import pathToRegexp from "path-to-regexp"; - -const cache = {}; -const cacheLimit = 10000; -let cacheCount = 0; - -function compilePath(path) { - if (cache[path]) return cache[path]; - - const generator = pathToRegexp.compile(path); - - if (cacheCount < cacheLimit) { - cache[path] = generator; - cacheCount++; - } - - return generator; -} - -/** - * Public API for generating a URL pathname from a path and parameters. - */ -function generatePath(path = "/", params = {}) { - return path === "/" ? path : compilePath(path)(params, { pretty: true }); -} - -export default generatePath; diff --git a/node_modules/react-router/modules/hooks.js b/node_modules/react-router/modules/hooks.js deleted file mode 100644 index a65543b..0000000 --- a/node_modules/react-router/modules/hooks.js +++ /dev/null @@ -1,56 +0,0 @@ -import React from "react"; -import invariant from "tiny-invariant"; - -import Context from "./RouterContext.js"; -import HistoryContext from "./HistoryContext.js"; -import matchPath from "./matchPath.js"; - -const useContext = React.useContext; - -export function useHistory() { - if (__DEV__) { - invariant( - typeof useContext === "function", - "You must use React >= 16.8 in order to use useHistory()" - ); - } - - return useContext(HistoryContext); -} - -export function useLocation() { - if (__DEV__) { - invariant( - typeof useContext === "function", - "You must use React >= 16.8 in order to use useLocation()" - ); - } - - return useContext(Context).location; -} - -export function useParams() { - if (__DEV__) { - invariant( - typeof useContext === "function", - "You must use React >= 16.8 in order to use useParams()" - ); - } - - const match = useContext(Context).match; - return match ? match.params : {}; -} - -export function useRouteMatch(path) { - if (__DEV__) { - invariant( - typeof useContext === "function", - "You must use React >= 16.8 in order to use useRouteMatch()" - ); - } - - const location = useLocation(); - const match = useContext(Context).match; - - return path ? matchPath(location.pathname, path) : match; -} diff --git a/node_modules/react-router/modules/index.js b/node_modules/react-router/modules/index.js deleted file mode 100644 index 1ca8537..0000000 --- a/node_modules/react-router/modules/index.js +++ /dev/null @@ -1,39 +0,0 @@ -if (__DEV__) { - if (typeof window !== "undefined") { - const global = window; - const key = "__react_router_build__"; - const buildNames = { cjs: "CommonJS", esm: "ES modules", umd: "UMD" }; - - if (global[key] && global[key] !== process.env.BUILD_FORMAT) { - const initialBuildName = buildNames[global[key]]; - const secondaryBuildName = buildNames[process.env.BUILD_FORMAT]; - - // TODO: Add link to article that explains in detail how to avoid - // loading 2 different builds. - throw new Error( - `You are loading the ${secondaryBuildName} build of React Router ` + - `on a page that is already running the ${initialBuildName} ` + - `build, so things won't work right.` - ); - } - - global[key] = process.env.BUILD_FORMAT; - } -} - -export { default as MemoryRouter } from "./MemoryRouter.js"; -export { default as Prompt } from "./Prompt.js"; -export { default as Redirect } from "./Redirect.js"; -export { default as Route } from "./Route.js"; -export { default as Router } from "./Router.js"; -export { default as StaticRouter } from "./StaticRouter.js"; -export { default as Switch } from "./Switch.js"; -export { default as generatePath } from "./generatePath.js"; -export { default as matchPath } from "./matchPath.js"; -export { default as withRouter } from "./withRouter.js"; - -import { useHistory, useLocation, useParams, useRouteMatch } from "./hooks.js"; -export { useHistory, useLocation, useParams, useRouteMatch }; - -export { default as __HistoryContext } from "./HistoryContext.js"; -export { default as __RouterContext } from "./RouterContext.js"; diff --git a/node_modules/react-router/modules/matchPath.js b/node_modules/react-router/modules/matchPath.js deleted file mode 100644 index 4d5b475..0000000 --- a/node_modules/react-router/modules/matchPath.js +++ /dev/null @@ -1,67 +0,0 @@ -import pathToRegexp from "path-to-regexp"; - -const cache = {}; -const cacheLimit = 10000; -let cacheCount = 0; - -function compilePath(path, options) { - const cacheKey = `${options.end}${options.strict}${options.sensitive}`; - const pathCache = cache[cacheKey] || (cache[cacheKey] = {}); - - if (pathCache[path]) return pathCache[path]; - - const keys = []; - const regexp = pathToRegexp(path, keys, options); - const result = { regexp, keys }; - - if (cacheCount < cacheLimit) { - pathCache[path] = result; - cacheCount++; - } - - return result; -} - -/** - * Public API for matching a URL pathname to a path. - */ -function matchPath(pathname, options = {}) { - if (typeof options === "string" || Array.isArray(options)) { - options = { path: options }; - } - - const { path, exact = false, strict = false, sensitive = false } = options; - - const paths = [].concat(path); - - return paths.reduce((matched, path) => { - if (!path && path !== "") return null; - if (matched) return matched; - - const { regexp, keys } = compilePath(path, { - end: exact, - strict, - sensitive - }); - const match = regexp.exec(pathname); - - if (!match) return null; - - const [url, ...values] = match; - const isExact = pathname === url; - - if (exact && !isExact) return null; - - return { - path, // the path used to match - url: path === "/" && url === "" ? "/" : url, // the matched portion of the URL - isExact, // whether or not we matched exactly - params: keys.reduce((memo, key, index) => { - memo[key.name] = values[index]; - return memo; - }, {}) - }; - }, null); -} - -export default matchPath; diff --git a/node_modules/react-router/modules/withRouter.js b/node_modules/react-router/modules/withRouter.js deleted file mode 100644 index 4536ab2..0000000 --- a/node_modules/react-router/modules/withRouter.js +++ /dev/null @@ -1,51 +0,0 @@ -import React from "react"; -import PropTypes from "prop-types"; -import hoistStatics from "hoist-non-react-statics"; -import invariant from "tiny-invariant"; - -import RouterContext from "./RouterContext.js"; - -/** - * A public higher-order component to access the imperative API - */ -function withRouter(Component) { - const displayName = `withRouter(${Component.displayName || Component.name})`; - const C = props => { - const { wrappedComponentRef, ...remainingProps } = props; - - return ( - - {context => { - invariant( - context, - `You should not use <${displayName} /> outside a ` - ); - return ( - - ); - }} - - ); - }; - - C.displayName = displayName; - C.WrappedComponent = Component; - - if (__DEV__) { - C.propTypes = { - wrappedComponentRef: PropTypes.oneOfType([ - PropTypes.string, - PropTypes.func, - PropTypes.object - ]) - }; - } - - return hoistStatics(C, Component); -} - -export default withRouter; diff --git a/node_modules/react-router/package.json b/node_modules/react-router/package.json deleted file mode 100644 index 6b0200b..0000000 --- a/node_modules/react-router/package.json +++ /dev/null @@ -1,99 +0,0 @@ -{ - "_from": "react-router@5.2.0", - "_id": "react-router@5.2.0", - "_inBundle": false, - "_integrity": "sha512-smz1DUuFHRKdcJC0jobGo8cVbhO3x50tCL4icacOlcwDOEQPq4TMqwx3sY1TP+DvtTgz4nm3thuo7A+BK2U0Dw==", - "_location": "/react-router", - "_phantomChildren": {}, - "_requested": { - "type": "version", - "registry": true, - "raw": "react-router@5.2.0", - "name": "react-router", - "escapedName": "react-router", - "rawSpec": "5.2.0", - "saveSpec": null, - "fetchSpec": "5.2.0" - }, - "_requiredBy": [ - "/react-router-dom" - ], - "_resolved": "https://registry.npmjs.org/react-router/-/react-router-5.2.0.tgz", - "_shasum": "424e75641ca8747fbf76e5ecca69781aa37ea293", - "_spec": "react-router@5.2.0", - "_where": "G:\\_comp_\\odsc\\orig\\AllNotes\\node_modules\\react-router-dom", - "author": { - "name": "React Training", - "email": "hello@reacttraining.com" - }, - "browserify": { - "transform": [ - "loose-envify" - ] - }, - "bugs": { - "url": "https://github.com/ReactTraining/react-router/issues" - }, - "bundleDependencies": false, - "dependencies": { - "@babel/runtime": "^7.1.2", - "history": "^4.9.0", - "hoist-non-react-statics": "^3.1.0", - "loose-envify": "^1.3.1", - "mini-create-react-context": "^0.4.0", - "path-to-regexp": "^1.7.0", - "prop-types": "^15.6.2", - "react-is": "^16.6.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0" - }, - "deprecated": false, - "description": "Declarative routing for React", - "files": [ - "MemoryRouter.js", - "Prompt.js", - "Redirect.js", - "Route.js", - "Router.js", - "StaticRouter.js", - "Switch.js", - "cjs", - "es", - "esm", - "index.js", - "generatePath.js", - "matchPath.js", - "modules/*.js", - "modules/utils/*.js", - "withRouter.js", - "warnAboutDeprecatedCJSRequire.js", - "umd" - ], - "gitHead": "21a62e55c0d6196002bd4ab5b3350514976928cf", - "homepage": "https://github.com/ReactTraining/react-router#readme", - "keywords": [ - "react", - "router", - "route", - "routing", - "history", - "link" - ], - "license": "MIT", - "main": "index.js", - "module": "esm/react-router.js", - "name": "react-router", - "peerDependencies": { - "react": ">=15" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/ReactTraining/react-router.git" - }, - "scripts": { - "build": "rollup -c", - "lint": "eslint modules" - }, - "sideEffects": false, - "version": "5.2.0" -} diff --git a/node_modules/react-router/umd/react-router.js b/node_modules/react-router/umd/react-router.js deleted file mode 100644 index 795ae72..0000000 --- a/node_modules/react-router/umd/react-router.js +++ /dev/null @@ -1,3075 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react')) : - typeof define === 'function' && define.amd ? define(['exports', 'react'], factory) : - (global = global || self, factory(global.ReactRouter = {}, global.React)); -}(this, function (exports, React) { 'use strict'; - - var React__default = 'default' in React ? React['default'] : React; - - function _inheritsLoose(subClass, superClass) { - subClass.prototype = Object.create(superClass.prototype); - subClass.prototype.constructor = subClass; - subClass.__proto__ = superClass; - } - - function unwrapExports (x) { - return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x; - } - - function createCommonjsModule(fn, module) { - return module = { exports: {} }, fn(module, module.exports), module.exports; - } - - var reactIs_production_min = createCommonjsModule(function (module, exports) { - Object.defineProperty(exports,"__esModule",{value:!0}); - var b="function"===typeof Symbol&&Symbol.for,c=b?Symbol.for("react.element"):60103,d=b?Symbol.for("react.portal"):60106,e=b?Symbol.for("react.fragment"):60107,f=b?Symbol.for("react.strict_mode"):60108,g=b?Symbol.for("react.profiler"):60114,h=b?Symbol.for("react.provider"):60109,k=b?Symbol.for("react.context"):60110,l=b?Symbol.for("react.async_mode"):60111,m=b?Symbol.for("react.concurrent_mode"):60111,n=b?Symbol.for("react.forward_ref"):60112,p=b?Symbol.for("react.suspense"):60113,q=b?Symbol.for("react.suspense_list"): - 60120,r=b?Symbol.for("react.memo"):60115,t=b?Symbol.for("react.lazy"):60116,v=b?Symbol.for("react.fundamental"):60117,w=b?Symbol.for("react.responder"):60118;function x(a){if("object"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case h:return a;default:return u}}case t:case r:case d:return u}}}function y(a){return x(a)===m}exports.typeOf=x;exports.AsyncMode=l; - exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p; - exports.isValidElementType=function(a){return "string"===typeof a||"function"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||"object"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===v||a.$$typeof===w)};exports.isAsyncMode=function(a){return y(a)||x(a)===l};exports.isConcurrentMode=y;exports.isContextConsumer=function(a){return x(a)===k};exports.isContextProvider=function(a){return x(a)===h}; - exports.isElement=function(a){return "object"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return x(a)===n};exports.isFragment=function(a){return x(a)===e};exports.isLazy=function(a){return x(a)===t};exports.isMemo=function(a){return x(a)===r};exports.isPortal=function(a){return x(a)===d};exports.isProfiler=function(a){return x(a)===g};exports.isStrictMode=function(a){return x(a)===f};exports.isSuspense=function(a){return x(a)===p}; - }); - - unwrapExports(reactIs_production_min); - var reactIs_production_min_1 = reactIs_production_min.typeOf; - var reactIs_production_min_2 = reactIs_production_min.AsyncMode; - var reactIs_production_min_3 = reactIs_production_min.ConcurrentMode; - var reactIs_production_min_4 = reactIs_production_min.ContextConsumer; - var reactIs_production_min_5 = reactIs_production_min.ContextProvider; - var reactIs_production_min_6 = reactIs_production_min.Element; - var reactIs_production_min_7 = reactIs_production_min.ForwardRef; - var reactIs_production_min_8 = reactIs_production_min.Fragment; - var reactIs_production_min_9 = reactIs_production_min.Lazy; - var reactIs_production_min_10 = reactIs_production_min.Memo; - var reactIs_production_min_11 = reactIs_production_min.Portal; - var reactIs_production_min_12 = reactIs_production_min.Profiler; - var reactIs_production_min_13 = reactIs_production_min.StrictMode; - var reactIs_production_min_14 = reactIs_production_min.Suspense; - var reactIs_production_min_15 = reactIs_production_min.isValidElementType; - var reactIs_production_min_16 = reactIs_production_min.isAsyncMode; - var reactIs_production_min_17 = reactIs_production_min.isConcurrentMode; - var reactIs_production_min_18 = reactIs_production_min.isContextConsumer; - var reactIs_production_min_19 = reactIs_production_min.isContextProvider; - var reactIs_production_min_20 = reactIs_production_min.isElement; - var reactIs_production_min_21 = reactIs_production_min.isForwardRef; - var reactIs_production_min_22 = reactIs_production_min.isFragment; - var reactIs_production_min_23 = reactIs_production_min.isLazy; - var reactIs_production_min_24 = reactIs_production_min.isMemo; - var reactIs_production_min_25 = reactIs_production_min.isPortal; - var reactIs_production_min_26 = reactIs_production_min.isProfiler; - var reactIs_production_min_27 = reactIs_production_min.isStrictMode; - var reactIs_production_min_28 = reactIs_production_min.isSuspense; - - var reactIs_development = createCommonjsModule(function (module, exports) { - - - - { - (function() { - - Object.defineProperty(exports, '__esModule', { value: true }); - - // The Symbol used to tag the ReactElement-like types. If there is no native Symbol - // nor polyfill, then a plain number is used for performance. - var hasSymbol = typeof Symbol === 'function' && Symbol.for; - - var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7; - var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca; - var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb; - var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc; - var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2; - var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd; - var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; - // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary - // (unstable) APIs that have been removed. Can we remove the symbols? - var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf; - var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf; - var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0; - var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1; - var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8; - var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3; - var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4; - var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5; - var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6; - - function isValidElementType(type) { - return typeof type === 'string' || typeof type === 'function' || - // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill. - type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE); - } - - /** - * Forked from fbjs/warning: - * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js - * - * Only change is we use console.warn instead of console.error, - * and do nothing when 'console' is not supported. - * This really simplifies the code. - * --- - * Similar to invariant but only logs a warning if the condition is not met. - * This can be used to log issues in development environments in critical - * paths. Removing the logging code for production environments will keep the - * same logic and follow the same code paths. - */ - - var lowPriorityWarning = function () {}; - - { - var printWarning = function (format) { - for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - - var argIndex = 0; - var message = 'Warning: ' + format.replace(/%s/g, function () { - return args[argIndex++]; - }); - if (typeof console !== 'undefined') { - console.warn(message); - } - try { - // --- Welcome to debugging React --- - // This error was thrown as a convenience so that you can use this stack - // to find the callsite that caused this warning to fire. - throw new Error(message); - } catch (x) {} - }; - - lowPriorityWarning = function (condition, format) { - if (format === undefined) { - throw new Error('`lowPriorityWarning(condition, format, ...args)` requires a warning ' + 'message argument'); - } - if (!condition) { - for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) { - args[_key2 - 2] = arguments[_key2]; - } - - printWarning.apply(undefined, [format].concat(args)); - } - }; - } - - var lowPriorityWarning$1 = lowPriorityWarning; - - function typeOf(object) { - if (typeof object === 'object' && object !== null) { - var $$typeof = object.$$typeof; - switch ($$typeof) { - case REACT_ELEMENT_TYPE: - var type = object.type; - - switch (type) { - case REACT_ASYNC_MODE_TYPE: - case REACT_CONCURRENT_MODE_TYPE: - case REACT_FRAGMENT_TYPE: - case REACT_PROFILER_TYPE: - case REACT_STRICT_MODE_TYPE: - case REACT_SUSPENSE_TYPE: - return type; - default: - var $$typeofType = type && type.$$typeof; - - switch ($$typeofType) { - case REACT_CONTEXT_TYPE: - case REACT_FORWARD_REF_TYPE: - case REACT_PROVIDER_TYPE: - return $$typeofType; - default: - return $$typeof; - } - } - case REACT_LAZY_TYPE: - case REACT_MEMO_TYPE: - case REACT_PORTAL_TYPE: - return $$typeof; - } - } - - return undefined; - } - - // AsyncMode is deprecated along with isAsyncMode - var AsyncMode = REACT_ASYNC_MODE_TYPE; - var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE; - var ContextConsumer = REACT_CONTEXT_TYPE; - var ContextProvider = REACT_PROVIDER_TYPE; - var Element = REACT_ELEMENT_TYPE; - var ForwardRef = REACT_FORWARD_REF_TYPE; - var Fragment = REACT_FRAGMENT_TYPE; - var Lazy = REACT_LAZY_TYPE; - var Memo = REACT_MEMO_TYPE; - var Portal = REACT_PORTAL_TYPE; - var Profiler = REACT_PROFILER_TYPE; - var StrictMode = REACT_STRICT_MODE_TYPE; - var Suspense = REACT_SUSPENSE_TYPE; - - var hasWarnedAboutDeprecatedIsAsyncMode = false; - - // AsyncMode should be deprecated - function isAsyncMode(object) { - { - if (!hasWarnedAboutDeprecatedIsAsyncMode) { - hasWarnedAboutDeprecatedIsAsyncMode = true; - lowPriorityWarning$1(false, 'The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.'); - } - } - return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE; - } - function isConcurrentMode(object) { - return typeOf(object) === REACT_CONCURRENT_MODE_TYPE; - } - function isContextConsumer(object) { - return typeOf(object) === REACT_CONTEXT_TYPE; - } - function isContextProvider(object) { - return typeOf(object) === REACT_PROVIDER_TYPE; - } - function isElement(object) { - return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE; - } - function isForwardRef(object) { - return typeOf(object) === REACT_FORWARD_REF_TYPE; - } - function isFragment(object) { - return typeOf(object) === REACT_FRAGMENT_TYPE; - } - function isLazy(object) { - return typeOf(object) === REACT_LAZY_TYPE; - } - function isMemo(object) { - return typeOf(object) === REACT_MEMO_TYPE; - } - function isPortal(object) { - return typeOf(object) === REACT_PORTAL_TYPE; - } - function isProfiler(object) { - return typeOf(object) === REACT_PROFILER_TYPE; - } - function isStrictMode(object) { - return typeOf(object) === REACT_STRICT_MODE_TYPE; - } - function isSuspense(object) { - return typeOf(object) === REACT_SUSPENSE_TYPE; - } - - exports.typeOf = typeOf; - exports.AsyncMode = AsyncMode; - exports.ConcurrentMode = ConcurrentMode; - exports.ContextConsumer = ContextConsumer; - exports.ContextProvider = ContextProvider; - exports.Element = Element; - exports.ForwardRef = ForwardRef; - exports.Fragment = Fragment; - exports.Lazy = Lazy; - exports.Memo = Memo; - exports.Portal = Portal; - exports.Profiler = Profiler; - exports.StrictMode = StrictMode; - exports.Suspense = Suspense; - exports.isValidElementType = isValidElementType; - exports.isAsyncMode = isAsyncMode; - exports.isConcurrentMode = isConcurrentMode; - exports.isContextConsumer = isContextConsumer; - exports.isContextProvider = isContextProvider; - exports.isElement = isElement; - exports.isForwardRef = isForwardRef; - exports.isFragment = isFragment; - exports.isLazy = isLazy; - exports.isMemo = isMemo; - exports.isPortal = isPortal; - exports.isProfiler = isProfiler; - exports.isStrictMode = isStrictMode; - exports.isSuspense = isSuspense; - })(); - } - }); - - unwrapExports(reactIs_development); - var reactIs_development_1 = reactIs_development.typeOf; - var reactIs_development_2 = reactIs_development.AsyncMode; - var reactIs_development_3 = reactIs_development.ConcurrentMode; - var reactIs_development_4 = reactIs_development.ContextConsumer; - var reactIs_development_5 = reactIs_development.ContextProvider; - var reactIs_development_6 = reactIs_development.Element; - var reactIs_development_7 = reactIs_development.ForwardRef; - var reactIs_development_8 = reactIs_development.Fragment; - var reactIs_development_9 = reactIs_development.Lazy; - var reactIs_development_10 = reactIs_development.Memo; - var reactIs_development_11 = reactIs_development.Portal; - var reactIs_development_12 = reactIs_development.Profiler; - var reactIs_development_13 = reactIs_development.StrictMode; - var reactIs_development_14 = reactIs_development.Suspense; - var reactIs_development_15 = reactIs_development.isValidElementType; - var reactIs_development_16 = reactIs_development.isAsyncMode; - var reactIs_development_17 = reactIs_development.isConcurrentMode; - var reactIs_development_18 = reactIs_development.isContextConsumer; - var reactIs_development_19 = reactIs_development.isContextProvider; - var reactIs_development_20 = reactIs_development.isElement; - var reactIs_development_21 = reactIs_development.isForwardRef; - var reactIs_development_22 = reactIs_development.isFragment; - var reactIs_development_23 = reactIs_development.isLazy; - var reactIs_development_24 = reactIs_development.isMemo; - var reactIs_development_25 = reactIs_development.isPortal; - var reactIs_development_26 = reactIs_development.isProfiler; - var reactIs_development_27 = reactIs_development.isStrictMode; - var reactIs_development_28 = reactIs_development.isSuspense; - - var reactIs = createCommonjsModule(function (module) { - - { - module.exports = reactIs_development; - } - }); - var reactIs_1 = reactIs.isValidElementType; - - /* - object-assign - (c) Sindre Sorhus - @license MIT - */ - /* eslint-disable no-unused-vars */ - var getOwnPropertySymbols = Object.getOwnPropertySymbols; - var hasOwnProperty = Object.prototype.hasOwnProperty; - var propIsEnumerable = Object.prototype.propertyIsEnumerable; - - function toObject(val) { - if (val === null || val === undefined) { - throw new TypeError('Object.assign cannot be called with null or undefined'); - } - - return Object(val); - } - - function shouldUseNative() { - try { - if (!Object.assign) { - return false; - } - - // Detect buggy property enumeration order in older V8 versions. - - // https://bugs.chromium.org/p/v8/issues/detail?id=4118 - var test1 = new String('abc'); // eslint-disable-line no-new-wrappers - test1[5] = 'de'; - if (Object.getOwnPropertyNames(test1)[0] === '5') { - return false; - } - - // https://bugs.chromium.org/p/v8/issues/detail?id=3056 - var test2 = {}; - for (var i = 0; i < 10; i++) { - test2['_' + String.fromCharCode(i)] = i; - } - var order2 = Object.getOwnPropertyNames(test2).map(function (n) { - return test2[n]; - }); - if (order2.join('') !== '0123456789') { - return false; - } - - // https://bugs.chromium.org/p/v8/issues/detail?id=3056 - var test3 = {}; - 'abcdefghijklmnopqrst'.split('').forEach(function (letter) { - test3[letter] = letter; - }); - if (Object.keys(Object.assign({}, test3)).join('') !== - 'abcdefghijklmnopqrst') { - return false; - } - - return true; - } catch (err) { - // We don't expect any of the above to throw, but better to be safe. - return false; - } - } - - var objectAssign = shouldUseNative() ? Object.assign : function (target, source) { - var from; - var to = toObject(target); - var symbols; - - for (var s = 1; s < arguments.length; s++) { - from = Object(arguments[s]); - - for (var key in from) { - if (hasOwnProperty.call(from, key)) { - to[key] = from[key]; - } - } - - if (getOwnPropertySymbols) { - symbols = getOwnPropertySymbols(from); - for (var i = 0; i < symbols.length; i++) { - if (propIsEnumerable.call(from, symbols[i])) { - to[symbols[i]] = from[symbols[i]]; - } - } - } - } - - return to; - }; - - /** - * Copyright (c) 2013-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - - var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; - - var ReactPropTypesSecret_1 = ReactPropTypesSecret; - - var printWarning = function() {}; - - { - var ReactPropTypesSecret$1 = ReactPropTypesSecret_1; - var loggedTypeFailures = {}; - var has = Function.call.bind(Object.prototype.hasOwnProperty); - - printWarning = function(text) { - var message = 'Warning: ' + text; - if (typeof console !== 'undefined') { - console.error(message); - } - try { - // --- Welcome to debugging React --- - // This error was thrown as a convenience so that you can use this stack - // to find the callsite that caused this warning to fire. - throw new Error(message); - } catch (x) {} - }; - } - - /** - * Assert that the values match with the type specs. - * Error messages are memorized and will only be shown once. - * - * @param {object} typeSpecs Map of name to a ReactPropType - * @param {object} values Runtime values that need to be type-checked - * @param {string} location e.g. "prop", "context", "child context" - * @param {string} componentName Name of the component for error messages. - * @param {?Function} getStack Returns the component stack. - * @private - */ - function checkPropTypes(typeSpecs, values, location, componentName, getStack) { - { - for (var typeSpecName in typeSpecs) { - if (has(typeSpecs, typeSpecName)) { - var error; - // Prop type validation may throw. In case they do, we don't want to - // fail the render phase where it didn't fail before. So we log it. - // After these have been cleaned up, we'll let them throw. - try { - // This is intentionally an invariant that gets caught. It's the same - // behavior as without this statement except with a better message. - if (typeof typeSpecs[typeSpecName] !== 'function') { - var err = Error( - (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + - 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' - ); - err.name = 'Invariant Violation'; - throw err; - } - error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret$1); - } catch (ex) { - error = ex; - } - if (error && !(error instanceof Error)) { - printWarning( - (componentName || 'React class') + ': type specification of ' + - location + ' `' + typeSpecName + '` is invalid; the type checker ' + - 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' + - 'You may have forgotten to pass an argument to the type checker ' + - 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + - 'shape all require an argument).' - ); - } - if (error instanceof Error && !(error.message in loggedTypeFailures)) { - // Only monitor this failure once because there tends to be a lot of the - // same error. - loggedTypeFailures[error.message] = true; - - var stack = getStack ? getStack() : ''; - - printWarning( - 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '') - ); - } - } - } - } - } - - /** - * Resets warning cache when testing. - * - * @private - */ - checkPropTypes.resetWarningCache = function() { - { - loggedTypeFailures = {}; - } - }; - - var checkPropTypes_1 = checkPropTypes; - - var has$1 = Function.call.bind(Object.prototype.hasOwnProperty); - var printWarning$1 = function() {}; - - { - printWarning$1 = function(text) { - var message = 'Warning: ' + text; - if (typeof console !== 'undefined') { - console.error(message); - } - try { - // --- Welcome to debugging React --- - // This error was thrown as a convenience so that you can use this stack - // to find the callsite that caused this warning to fire. - throw new Error(message); - } catch (x) {} - }; - } - - function emptyFunctionThatReturnsNull() { - return null; - } - - var factoryWithTypeCheckers = function(isValidElement, throwOnDirectAccess) { - /* global Symbol */ - var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; - var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec. - - /** - * Returns the iterator method function contained on the iterable object. - * - * Be sure to invoke the function with the iterable as context: - * - * var iteratorFn = getIteratorFn(myIterable); - * if (iteratorFn) { - * var iterator = iteratorFn.call(myIterable); - * ... - * } - * - * @param {?object} maybeIterable - * @return {?function} - */ - function getIteratorFn(maybeIterable) { - var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]); - if (typeof iteratorFn === 'function') { - return iteratorFn; - } - } - - /** - * Collection of methods that allow declaration and validation of props that are - * supplied to React components. Example usage: - * - * var Props = require('ReactPropTypes'); - * var MyArticle = React.createClass({ - * propTypes: { - * // An optional string prop named "description". - * description: Props.string, - * - * // A required enum prop named "category". - * category: Props.oneOf(['News','Photos']).isRequired, - * - * // A prop named "dialog" that requires an instance of Dialog. - * dialog: Props.instanceOf(Dialog).isRequired - * }, - * render: function() { ... } - * }); - * - * A more formal specification of how these methods are used: - * - * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...) - * decl := ReactPropTypes.{type}(.isRequired)? - * - * Each and every declaration produces a function with the same signature. This - * allows the creation of custom validation functions. For example: - * - * var MyLink = React.createClass({ - * propTypes: { - * // An optional string or URI prop named "href". - * href: function(props, propName, componentName) { - * var propValue = props[propName]; - * if (propValue != null && typeof propValue !== 'string' && - * !(propValue instanceof URI)) { - * return new Error( - * 'Expected a string or an URI for ' + propName + ' in ' + - * componentName - * ); - * } - * } - * }, - * render: function() {...} - * }); - * - * @internal - */ - - var ANONYMOUS = '<>'; - - // Important! - // Keep this list in sync with production version in `./factoryWithThrowingShims.js`. - var ReactPropTypes = { - array: createPrimitiveTypeChecker('array'), - bool: createPrimitiveTypeChecker('boolean'), - func: createPrimitiveTypeChecker('function'), - number: createPrimitiveTypeChecker('number'), - object: createPrimitiveTypeChecker('object'), - string: createPrimitiveTypeChecker('string'), - symbol: createPrimitiveTypeChecker('symbol'), - - any: createAnyTypeChecker(), - arrayOf: createArrayOfTypeChecker, - element: createElementTypeChecker(), - elementType: createElementTypeTypeChecker(), - instanceOf: createInstanceTypeChecker, - node: createNodeChecker(), - objectOf: createObjectOfTypeChecker, - oneOf: createEnumTypeChecker, - oneOfType: createUnionTypeChecker, - shape: createShapeTypeChecker, - exact: createStrictShapeTypeChecker, - }; - - /** - * inlined Object.is polyfill to avoid requiring consumers ship their own - * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is - */ - /*eslint-disable no-self-compare*/ - function is(x, y) { - // SameValue algorithm - if (x === y) { - // Steps 1-5, 7-10 - // Steps 6.b-6.e: +0 != -0 - return x !== 0 || 1 / x === 1 / y; - } else { - // Step 6.a: NaN == NaN - return x !== x && y !== y; - } - } - /*eslint-enable no-self-compare*/ - - /** - * We use an Error-like object for backward compatibility as people may call - * PropTypes directly and inspect their output. However, we don't use real - * Errors anymore. We don't inspect their stack anyway, and creating them - * is prohibitively expensive if they are created too often, such as what - * happens in oneOfType() for any type before the one that matched. - */ - function PropTypeError(message) { - this.message = message; - this.stack = ''; - } - // Make `instanceof Error` still work for returned errors. - PropTypeError.prototype = Error.prototype; - - function createChainableTypeChecker(validate) { - { - var manualPropTypeCallCache = {}; - var manualPropTypeWarningCount = 0; - } - function checkType(isRequired, props, propName, componentName, location, propFullName, secret) { - componentName = componentName || ANONYMOUS; - propFullName = propFullName || propName; - - if (secret !== ReactPropTypesSecret_1) { - if (throwOnDirectAccess) { - // New behavior only for users of `prop-types` package - var err = new Error( - 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + - 'Use `PropTypes.checkPropTypes()` to call them. ' + - 'Read more at http://fb.me/use-check-prop-types' - ); - err.name = 'Invariant Violation'; - throw err; - } else if ( typeof console !== 'undefined') { - // Old behavior for people using React.PropTypes - var cacheKey = componentName + ':' + propName; - if ( - !manualPropTypeCallCache[cacheKey] && - // Avoid spamming the console because they are often not actionable except for lib authors - manualPropTypeWarningCount < 3 - ) { - printWarning$1( - 'You are manually calling a React.PropTypes validation ' + - 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' + - 'and will throw in the standalone `prop-types` package. ' + - 'You may be seeing this warning due to a third-party PropTypes ' + - 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.' - ); - manualPropTypeCallCache[cacheKey] = true; - manualPropTypeWarningCount++; - } - } - } - if (props[propName] == null) { - if (isRequired) { - if (props[propName] === null) { - return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.')); - } - return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.')); - } - return null; - } else { - return validate(props, propName, componentName, location, propFullName); - } - } - - var chainedCheckType = checkType.bind(null, false); - chainedCheckType.isRequired = checkType.bind(null, true); - - return chainedCheckType; - } - - function createPrimitiveTypeChecker(expectedType) { - function validate(props, propName, componentName, location, propFullName, secret) { - var propValue = props[propName]; - var propType = getPropType(propValue); - if (propType !== expectedType) { - // `propValue` being instance of, say, date/regexp, pass the 'object' - // check, but we can offer a more precise error message here rather than - // 'of type `object`'. - var preciseType = getPreciseType(propValue); - - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.')); - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createAnyTypeChecker() { - return createChainableTypeChecker(emptyFunctionThatReturnsNull); - } - - function createArrayOfTypeChecker(typeChecker) { - function validate(props, propName, componentName, location, propFullName) { - if (typeof typeChecker !== 'function') { - return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.'); - } - var propValue = props[propName]; - if (!Array.isArray(propValue)) { - var propType = getPropType(propValue); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.')); - } - for (var i = 0; i < propValue.length; i++) { - var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret_1); - if (error instanceof Error) { - return error; - } - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createElementTypeChecker() { - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - if (!isValidElement(propValue)) { - var propType = getPropType(propValue); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.')); - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createElementTypeTypeChecker() { - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - if (!reactIs.isValidElementType(propValue)) { - var propType = getPropType(propValue); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.')); - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createInstanceTypeChecker(expectedClass) { - function validate(props, propName, componentName, location, propFullName) { - if (!(props[propName] instanceof expectedClass)) { - var expectedClassName = expectedClass.name || ANONYMOUS; - var actualClassName = getClassName(props[propName]); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.')); - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createEnumTypeChecker(expectedValues) { - if (!Array.isArray(expectedValues)) { - { - if (arguments.length > 1) { - printWarning$1( - 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' + - 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).' - ); - } else { - printWarning$1('Invalid argument supplied to oneOf, expected an array.'); - } - } - return emptyFunctionThatReturnsNull; - } - - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - for (var i = 0; i < expectedValues.length; i++) { - if (is(propValue, expectedValues[i])) { - return null; - } - } - - var valuesString = JSON.stringify(expectedValues, function replacer(key, value) { - var type = getPreciseType(value); - if (type === 'symbol') { - return String(value); - } - return value; - }); - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.')); - } - return createChainableTypeChecker(validate); - } - - function createObjectOfTypeChecker(typeChecker) { - function validate(props, propName, componentName, location, propFullName) { - if (typeof typeChecker !== 'function') { - return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.'); - } - var propValue = props[propName]; - var propType = getPropType(propValue); - if (propType !== 'object') { - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.')); - } - for (var key in propValue) { - if (has$1(propValue, key)) { - var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret_1); - if (error instanceof Error) { - return error; - } - } - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createUnionTypeChecker(arrayOfTypeCheckers) { - if (!Array.isArray(arrayOfTypeCheckers)) { - printWarning$1('Invalid argument supplied to oneOfType, expected an instance of array.') ; - return emptyFunctionThatReturnsNull; - } - - for (var i = 0; i < arrayOfTypeCheckers.length; i++) { - var checker = arrayOfTypeCheckers[i]; - if (typeof checker !== 'function') { - printWarning$1( - 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' + - 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.' - ); - return emptyFunctionThatReturnsNull; - } - } - - function validate(props, propName, componentName, location, propFullName) { - for (var i = 0; i < arrayOfTypeCheckers.length; i++) { - var checker = arrayOfTypeCheckers[i]; - if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret_1) == null) { - return null; - } - } - - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.')); - } - return createChainableTypeChecker(validate); - } - - function createNodeChecker() { - function validate(props, propName, componentName, location, propFullName) { - if (!isNode(props[propName])) { - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.')); - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createShapeTypeChecker(shapeTypes) { - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - var propType = getPropType(propValue); - if (propType !== 'object') { - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); - } - for (var key in shapeTypes) { - var checker = shapeTypes[key]; - if (!checker) { - continue; - } - var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret_1); - if (error) { - return error; - } - } - return null; - } - return createChainableTypeChecker(validate); - } - - function createStrictShapeTypeChecker(shapeTypes) { - function validate(props, propName, componentName, location, propFullName) { - var propValue = props[propName]; - var propType = getPropType(propValue); - if (propType !== 'object') { - return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); - } - // We need to check all keys in case some are required but missing from - // props. - var allKeys = objectAssign({}, props[propName], shapeTypes); - for (var key in allKeys) { - var checker = shapeTypes[key]; - if (!checker) { - return new PropTypeError( - 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' + - '\nBad object: ' + JSON.stringify(props[propName], null, ' ') + - '\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ') - ); - } - var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret_1); - if (error) { - return error; - } - } - return null; - } - - return createChainableTypeChecker(validate); - } - - function isNode(propValue) { - switch (typeof propValue) { - case 'number': - case 'string': - case 'undefined': - return true; - case 'boolean': - return !propValue; - case 'object': - if (Array.isArray(propValue)) { - return propValue.every(isNode); - } - if (propValue === null || isValidElement(propValue)) { - return true; - } - - var iteratorFn = getIteratorFn(propValue); - if (iteratorFn) { - var iterator = iteratorFn.call(propValue); - var step; - if (iteratorFn !== propValue.entries) { - while (!(step = iterator.next()).done) { - if (!isNode(step.value)) { - return false; - } - } - } else { - // Iterator will provide entry [k,v] tuples rather than values. - while (!(step = iterator.next()).done) { - var entry = step.value; - if (entry) { - if (!isNode(entry[1])) { - return false; - } - } - } - } - } else { - return false; - } - - return true; - default: - return false; - } - } - - function isSymbol(propType, propValue) { - // Native Symbol. - if (propType === 'symbol') { - return true; - } - - // falsy value can't be a Symbol - if (!propValue) { - return false; - } - - // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol' - if (propValue['@@toStringTag'] === 'Symbol') { - return true; - } - - // Fallback for non-spec compliant Symbols which are polyfilled. - if (typeof Symbol === 'function' && propValue instanceof Symbol) { - return true; - } - - return false; - } - - // Equivalent of `typeof` but with special handling for array and regexp. - function getPropType(propValue) { - var propType = typeof propValue; - if (Array.isArray(propValue)) { - return 'array'; - } - if (propValue instanceof RegExp) { - // Old webkits (at least until Android 4.0) return 'function' rather than - // 'object' for typeof a RegExp. We'll normalize this here so that /bla/ - // passes PropTypes.object. - return 'object'; - } - if (isSymbol(propType, propValue)) { - return 'symbol'; - } - return propType; - } - - // This handles more types than `getPropType`. Only used for error messages. - // See `createPrimitiveTypeChecker`. - function getPreciseType(propValue) { - if (typeof propValue === 'undefined' || propValue === null) { - return '' + propValue; - } - var propType = getPropType(propValue); - if (propType === 'object') { - if (propValue instanceof Date) { - return 'date'; - } else if (propValue instanceof RegExp) { - return 'regexp'; - } - } - return propType; - } - - // Returns a string that is postfixed to a warning about an invalid type. - // For example, "undefined" or "of type array" - function getPostfixForTypeWarning(value) { - var type = getPreciseType(value); - switch (type) { - case 'array': - case 'object': - return 'an ' + type; - case 'boolean': - case 'date': - case 'regexp': - return 'a ' + type; - default: - return type; - } - } - - // Returns class name of the object, if any. - function getClassName(propValue) { - if (!propValue.constructor || !propValue.constructor.name) { - return ANONYMOUS; - } - return propValue.constructor.name; - } - - ReactPropTypes.checkPropTypes = checkPropTypes_1; - ReactPropTypes.resetWarningCache = checkPropTypes_1.resetWarningCache; - ReactPropTypes.PropTypes = ReactPropTypes; - - return ReactPropTypes; - }; - - var propTypes = createCommonjsModule(function (module) { - /** - * Copyright (c) 2013-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - - { - var ReactIs = reactIs; - - // By explicitly using `prop-types` you are opting into new development behavior. - // http://fb.me/prop-types-in-prod - var throwOnDirectAccess = true; - module.exports = factoryWithTypeCheckers(ReactIs.isElement, throwOnDirectAccess); - } - }); - - function _extends() { - _extends = Object.assign || function (target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i]; - - for (var key in source) { - if (Object.prototype.hasOwnProperty.call(source, key)) { - target[key] = source[key]; - } - } - } - - return target; - }; - - return _extends.apply(this, arguments); - } - - function isAbsolute(pathname) { - return pathname.charAt(0) === '/'; - } - - // About 1.5x faster than the two-arg version of Array#splice() - function spliceOne(list, index) { - for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) { - list[i] = list[k]; - } - - list.pop(); - } - - // This implementation is based heavily on node's url.parse - function resolvePathname(to) { - var from = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; - - var toParts = to && to.split('/') || []; - var fromParts = from && from.split('/') || []; - - var isToAbs = to && isAbsolute(to); - var isFromAbs = from && isAbsolute(from); - var mustEndAbs = isToAbs || isFromAbs; - - if (to && isAbsolute(to)) { - // to is absolute - fromParts = toParts; - } else if (toParts.length) { - // to is relative, drop the filename - fromParts.pop(); - fromParts = fromParts.concat(toParts); - } - - if (!fromParts.length) return '/'; - - var hasTrailingSlash = void 0; - if (fromParts.length) { - var last = fromParts[fromParts.length - 1]; - hasTrailingSlash = last === '.' || last === '..' || last === ''; - } else { - hasTrailingSlash = false; - } - - var up = 0; - for (var i = fromParts.length; i >= 0; i--) { - var part = fromParts[i]; - - if (part === '.') { - spliceOne(fromParts, i); - } else if (part === '..') { - spliceOne(fromParts, i); - up++; - } else if (up) { - spliceOne(fromParts, i); - up--; - } - } - - if (!mustEndAbs) for (; up--; up) { - fromParts.unshift('..'); - }if (mustEndAbs && fromParts[0] !== '' && (!fromParts[0] || !isAbsolute(fromParts[0]))) fromParts.unshift(''); - - var result = fromParts.join('/'); - - if (hasTrailingSlash && result.substr(-1) !== '/') result += '/'; - - return result; - } - - var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; - - function valueEqual(a, b) { - if (a === b) return true; - - if (a == null || b == null) return false; - - if (Array.isArray(a)) { - return Array.isArray(b) && a.length === b.length && a.every(function (item, index) { - return valueEqual(item, b[index]); - }); - } - - var aType = typeof a === 'undefined' ? 'undefined' : _typeof(a); - var bType = typeof b === 'undefined' ? 'undefined' : _typeof(b); - - if (aType !== bType) return false; - - if (aType === 'object') { - var aValue = a.valueOf(); - var bValue = b.valueOf(); - - if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue); - - var aKeys = Object.keys(a); - var bKeys = Object.keys(b); - - if (aKeys.length !== bKeys.length) return false; - - return aKeys.every(function (key) { - return valueEqual(a[key], b[key]); - }); - } - - return false; - } - - function warning(condition, message) { - { - if (condition) { - return; - } - - var text = "Warning: " + message; - - if (typeof console !== 'undefined') { - console.warn(text); - } - - try { - throw Error(text); - } catch (x) {} - } - } - - var prefix = 'Invariant failed'; - function invariant(condition, message) { - if (condition) { - return; - } - - { - throw new Error(prefix + ": " + (message || '')); - } - } - - function parsePath(path) { - var pathname = path || '/'; - var search = ''; - var hash = ''; - var hashIndex = pathname.indexOf('#'); - - if (hashIndex !== -1) { - hash = pathname.substr(hashIndex); - pathname = pathname.substr(0, hashIndex); - } - - var searchIndex = pathname.indexOf('?'); - - if (searchIndex !== -1) { - search = pathname.substr(searchIndex); - pathname = pathname.substr(0, searchIndex); - } - - return { - pathname: pathname, - search: search === '?' ? '' : search, - hash: hash === '#' ? '' : hash - }; - } - function createPath(location) { - var pathname = location.pathname, - search = location.search, - hash = location.hash; - var path = pathname || '/'; - if (search && search !== '?') path += search.charAt(0) === '?' ? search : "?" + search; - if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : "#" + hash; - return path; - } - - function createLocation(path, state, key, currentLocation) { - var location; - - if (typeof path === 'string') { - // Two-arg form: push(path, state) - location = parsePath(path); - location.state = state; - } else { - // One-arg form: push(location) - location = _extends({}, path); - if (location.pathname === undefined) location.pathname = ''; - - if (location.search) { - if (location.search.charAt(0) !== '?') location.search = '?' + location.search; - } else { - location.search = ''; - } - - if (location.hash) { - if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash; - } else { - location.hash = ''; - } - - if (state !== undefined && location.state === undefined) location.state = state; - } - - try { - location.pathname = decodeURI(location.pathname); - } catch (e) { - if (e instanceof URIError) { - throw new URIError('Pathname "' + location.pathname + '" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.'); - } else { - throw e; - } - } - - if (key) location.key = key; - - if (currentLocation) { - // Resolve incomplete/relative pathname relative to current location. - if (!location.pathname) { - location.pathname = currentLocation.pathname; - } else if (location.pathname.charAt(0) !== '/') { - location.pathname = resolvePathname(location.pathname, currentLocation.pathname); - } - } else { - // When there is no prior location and pathname is empty, set it to / - if (!location.pathname) { - location.pathname = '/'; - } - } - - return location; - } - function locationsAreEqual(a, b) { - return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state); - } - - function createTransitionManager() { - var prompt = null; - - function setPrompt(nextPrompt) { - warning(prompt == null, 'A history supports only one prompt at a time') ; - prompt = nextPrompt; - return function () { - if (prompt === nextPrompt) prompt = null; - }; - } - - function confirmTransitionTo(location, action, getUserConfirmation, callback) { - // TODO: If another transition starts while we're still confirming - // the previous one, we may end up in a weird state. Figure out the - // best way to handle this. - if (prompt != null) { - var result = typeof prompt === 'function' ? prompt(location, action) : prompt; - - if (typeof result === 'string') { - if (typeof getUserConfirmation === 'function') { - getUserConfirmation(result, callback); - } else { - warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') ; - callback(true); - } - } else { - // Return false from a transition hook to cancel the transition. - callback(result !== false); - } - } else { - callback(true); - } - } - - var listeners = []; - - function appendListener(fn) { - var isActive = true; - - function listener() { - if (isActive) fn.apply(void 0, arguments); - } - - listeners.push(listener); - return function () { - isActive = false; - listeners = listeners.filter(function (item) { - return item !== listener; - }); - }; - } - - function notifyListeners() { - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - listeners.forEach(function (listener) { - return listener.apply(void 0, args); - }); - } - - return { - setPrompt: setPrompt, - confirmTransitionTo: confirmTransitionTo, - appendListener: appendListener, - notifyListeners: notifyListeners - }; - } - - var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement); - - function clamp(n, lowerBound, upperBound) { - return Math.min(Math.max(n, lowerBound), upperBound); - } - /** - * Creates a history object that stores locations in memory. - */ - - - function createMemoryHistory(props) { - if (props === void 0) { - props = {}; - } - - var _props = props, - getUserConfirmation = _props.getUserConfirmation, - _props$initialEntries = _props.initialEntries, - initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries, - _props$initialIndex = _props.initialIndex, - initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex, - _props$keyLength = _props.keyLength, - keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength; - var transitionManager = createTransitionManager(); - - function setState(nextState) { - _extends(history, nextState); - - history.length = history.entries.length; - transitionManager.notifyListeners(history.location, history.action); - } - - function createKey() { - return Math.random().toString(36).substr(2, keyLength); - } - - var index = clamp(initialIndex, 0, initialEntries.length - 1); - var entries = initialEntries.map(function (entry) { - return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey()); - }); // Public interface - - var createHref = createPath; - - function push(path, state) { - warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') ; - var action = 'PUSH'; - var location = createLocation(path, state, createKey(), history.location); - transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { - if (!ok) return; - var prevIndex = history.index; - var nextIndex = prevIndex + 1; - var nextEntries = history.entries.slice(0); - - if (nextEntries.length > nextIndex) { - nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location); - } else { - nextEntries.push(location); - } - - setState({ - action: action, - location: location, - index: nextIndex, - entries: nextEntries - }); - }); - } - - function replace(path, state) { - warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') ; - var action = 'REPLACE'; - var location = createLocation(path, state, createKey(), history.location); - transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { - if (!ok) return; - history.entries[history.index] = location; - setState({ - action: action, - location: location - }); - }); - } - - function go(n) { - var nextIndex = clamp(history.index + n, 0, history.entries.length - 1); - var action = 'POP'; - var location = history.entries[nextIndex]; - transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { - if (ok) { - setState({ - action: action, - location: location, - index: nextIndex - }); - } else { - // Mimic the behavior of DOM histories by - // causing a render after a cancelled POP. - setState(); - } - }); - } - - function goBack() { - go(-1); - } - - function goForward() { - go(1); - } - - function canGo(n) { - var nextIndex = history.index + n; - return nextIndex >= 0 && nextIndex < history.entries.length; - } - - function block(prompt) { - if (prompt === void 0) { - prompt = false; - } - - return transitionManager.setPrompt(prompt); - } - - function listen(listener) { - return transitionManager.appendListener(listener); - } - - var history = { - length: entries.length, - action: 'POP', - location: entries[index], - index: index, - entries: entries, - createHref: createHref, - push: push, - replace: replace, - go: go, - goBack: goBack, - goForward: goForward, - canGo: canGo, - block: block, - listen: listen - }; - return history; - } - - function _inheritsLoose$1(subClass, superClass) { - subClass.prototype = Object.create(superClass.prototype); - subClass.prototype.constructor = subClass; - subClass.__proto__ = superClass; - } - - var MAX_SIGNED_31_BIT_INT = 1073741823; - var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {}; - - function getUniqueId() { - var key = '__global_unique_id__'; - return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1; - } - - function objectIs(x, y) { - if (x === y) { - return x !== 0 || 1 / x === 1 / y; - } else { - return x !== x && y !== y; - } - } - - function createEventEmitter(value) { - var handlers = []; - return { - on: function on(handler) { - handlers.push(handler); - }, - off: function off(handler) { - handlers = handlers.filter(function (h) { - return h !== handler; - }); - }, - get: function get() { - return value; - }, - set: function set(newValue, changedBits) { - value = newValue; - handlers.forEach(function (handler) { - return handler(value, changedBits); - }); - } - }; - } - - function onlyChild(children) { - return Array.isArray(children) ? children[0] : children; - } - - function createReactContext(defaultValue, calculateChangedBits) { - var _Provider$childContex, _Consumer$contextType; - - var contextProp = '__create-react-context-' + getUniqueId() + '__'; - - var Provider = /*#__PURE__*/function (_Component) { - _inheritsLoose$1(Provider, _Component); - - function Provider() { - var _this; - - _this = _Component.apply(this, arguments) || this; - _this.emitter = createEventEmitter(_this.props.value); - return _this; - } - - var _proto = Provider.prototype; - - _proto.getChildContext = function getChildContext() { - var _ref; - - return _ref = {}, _ref[contextProp] = this.emitter, _ref; - }; - - _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { - if (this.props.value !== nextProps.value) { - var oldValue = this.props.value; - var newValue = nextProps.value; - var changedBits; - - if (objectIs(oldValue, newValue)) { - changedBits = 0; - } else { - changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT; - - { - warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: ' + changedBits); - } - - changedBits |= 0; - - if (changedBits !== 0) { - this.emitter.set(nextProps.value, changedBits); - } - } - } - }; - - _proto.render = function render() { - return this.props.children; - }; - - return Provider; - }(React.Component); - - Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = propTypes.object.isRequired, _Provider$childContex); - - var Consumer = /*#__PURE__*/function (_Component2) { - _inheritsLoose$1(Consumer, _Component2); - - function Consumer() { - var _this2; - - _this2 = _Component2.apply(this, arguments) || this; - _this2.state = { - value: _this2.getValue() - }; - - _this2.onUpdate = function (newValue, changedBits) { - var observedBits = _this2.observedBits | 0; - - if ((observedBits & changedBits) !== 0) { - _this2.setState({ - value: _this2.getValue() - }); - } - }; - - return _this2; - } - - var _proto2 = Consumer.prototype; - - _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { - var observedBits = nextProps.observedBits; - this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits; - }; - - _proto2.componentDidMount = function componentDidMount() { - if (this.context[contextProp]) { - this.context[contextProp].on(this.onUpdate); - } - - var observedBits = this.props.observedBits; - this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits; - }; - - _proto2.componentWillUnmount = function componentWillUnmount() { - if (this.context[contextProp]) { - this.context[contextProp].off(this.onUpdate); - } - }; - - _proto2.getValue = function getValue() { - if (this.context[contextProp]) { - return this.context[contextProp].get(); - } else { - return defaultValue; - } - }; - - _proto2.render = function render() { - return onlyChild(this.props.children)(this.state.value); - }; - - return Consumer; - }(React.Component); - - Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = propTypes.object, _Consumer$contextType); - return { - Provider: Provider, - Consumer: Consumer - }; - } - - var index = React__default.createContext || createReactContext; - - // TODO: Replace with React.createContext once we can assume React 16+ - - var createNamedContext = function createNamedContext(name) { - var context = index(); - context.displayName = name; - return context; - }; - - var historyContext = - /*#__PURE__*/ - createNamedContext("Router-History"); - - // TODO: Replace with React.createContext once we can assume React 16+ - - var createNamedContext$1 = function createNamedContext(name) { - var context = index(); - context.displayName = name; - return context; - }; - - var context = - /*#__PURE__*/ - createNamedContext$1("Router"); - - /** - * The public API for putting history on context. - */ - - var Router = - /*#__PURE__*/ - function (_React$Component) { - _inheritsLoose(Router, _React$Component); - - Router.computeRootMatch = function computeRootMatch(pathname) { - return { - path: "/", - url: "/", - params: {}, - isExact: pathname === "/" - }; - }; - - function Router(props) { - var _this; - - _this = _React$Component.call(this, props) || this; - _this.state = { - location: props.history.location - }; // This is a bit of a hack. We have to start listening for location - // changes here in the constructor in case there are any s - // on the initial render. If there are, they will replace/push when - // they mount and since cDM fires in children before parents, we may - // get a new location before the is mounted. - - _this._isMounted = false; - _this._pendingLocation = null; - - if (!props.staticContext) { - _this.unlisten = props.history.listen(function (location) { - if (_this._isMounted) { - _this.setState({ - location: location - }); - } else { - _this._pendingLocation = location; - } - }); - } - - return _this; - } - - var _proto = Router.prototype; - - _proto.componentDidMount = function componentDidMount() { - this._isMounted = true; - - if (this._pendingLocation) { - this.setState({ - location: this._pendingLocation - }); - } - }; - - _proto.componentWillUnmount = function componentWillUnmount() { - if (this.unlisten) this.unlisten(); - }; - - _proto.render = function render() { - return React__default.createElement(context.Provider, { - value: { - history: this.props.history, - location: this.state.location, - match: Router.computeRootMatch(this.state.location.pathname), - staticContext: this.props.staticContext - } - }, React__default.createElement(historyContext.Provider, { - children: this.props.children || null, - value: this.props.history - })); - }; - - return Router; - }(React__default.Component); - - { - Router.propTypes = { - children: propTypes.node, - history: propTypes.object.isRequired, - staticContext: propTypes.object - }; - - Router.prototype.componentDidUpdate = function (prevProps) { - warning(prevProps.history === this.props.history, "You cannot change ") ; - }; - } - - /** - * The public API for a that stores location in memory. - */ - - var MemoryRouter = - /*#__PURE__*/ - function (_React$Component) { - _inheritsLoose(MemoryRouter, _React$Component); - - function MemoryRouter() { - var _this; - - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this; - _this.history = createMemoryHistory(_this.props); - return _this; - } - - var _proto = MemoryRouter.prototype; - - _proto.render = function render() { - return React__default.createElement(Router, { - history: this.history, - children: this.props.children - }); - }; - - return MemoryRouter; - }(React__default.Component); - - { - MemoryRouter.propTypes = { - initialEntries: propTypes.array, - initialIndex: propTypes.number, - getUserConfirmation: propTypes.func, - keyLength: propTypes.number, - children: propTypes.node - }; - - MemoryRouter.prototype.componentDidMount = function () { - warning(!this.props.history, " ignores the history prop. To use a custom history, " + "use `import { Router }` instead of `import { MemoryRouter as Router }`.") ; - }; - } - - var Lifecycle = - /*#__PURE__*/ - function (_React$Component) { - _inheritsLoose(Lifecycle, _React$Component); - - function Lifecycle() { - return _React$Component.apply(this, arguments) || this; - } - - var _proto = Lifecycle.prototype; - - _proto.componentDidMount = function componentDidMount() { - if (this.props.onMount) this.props.onMount.call(this, this); - }; - - _proto.componentDidUpdate = function componentDidUpdate(prevProps) { - if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps); - }; - - _proto.componentWillUnmount = function componentWillUnmount() { - if (this.props.onUnmount) this.props.onUnmount.call(this, this); - }; - - _proto.render = function render() { - return null; - }; - - return Lifecycle; - }(React__default.Component); - - /** - * The public API for prompting the user before navigating away from a screen. - */ - - function Prompt(_ref) { - var message = _ref.message, - _ref$when = _ref.when, - when = _ref$when === void 0 ? true : _ref$when; - return React__default.createElement(context.Consumer, null, function (context) { - !context ? invariant(false, "You should not use outside a ") : void 0; - if (!when || context.staticContext) return null; - var method = context.history.block; - return React__default.createElement(Lifecycle, { - onMount: function onMount(self) { - self.release = method(message); - }, - onUpdate: function onUpdate(self, prevProps) { - if (prevProps.message !== message) { - self.release(); - self.release = method(message); - } - }, - onUnmount: function onUnmount(self) { - self.release(); - }, - message: message - }); - }); - } - - { - var messageType = propTypes.oneOfType([propTypes.func, propTypes.string]); - Prompt.propTypes = { - when: propTypes.bool, - message: messageType.isRequired - }; - } - - var isarray = Array.isArray || function (arr) { - return Object.prototype.toString.call(arr) == '[object Array]'; - }; - - /** - * Expose `pathToRegexp`. - */ - var pathToRegexp_1 = pathToRegexp; - var parse_1 = parse; - var compile_1 = compile; - var tokensToFunction_1 = tokensToFunction; - var tokensToRegExp_1 = tokensToRegExp; - - /** - * The main path matching regexp utility. - * - * @type {RegExp} - */ - var PATH_REGEXP = new RegExp([ - // Match escaped characters that would otherwise appear in future matches. - // This allows the user to escape special characters that won't transform. - '(\\\\.)', - // Match Express-style parameters and un-named parameters with a prefix - // and optional suffixes. Matches appear as: - // - // "/:test(\\d+)?" => ["/", "test", "\d+", undefined, "?", undefined] - // "/route(\\d+)" => [undefined, undefined, undefined, "\d+", undefined, undefined] - // "/*" => ["/", undefined, undefined, undefined, undefined, "*"] - '([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))' - ].join('|'), 'g'); - - /** - * Parse a string for the raw tokens. - * - * @param {string} str - * @param {Object=} options - * @return {!Array} - */ - function parse (str, options) { - var tokens = []; - var key = 0; - var index = 0; - var path = ''; - var defaultDelimiter = options && options.delimiter || '/'; - var res; - - while ((res = PATH_REGEXP.exec(str)) != null) { - var m = res[0]; - var escaped = res[1]; - var offset = res.index; - path += str.slice(index, offset); - index = offset + m.length; - - // Ignore already escaped sequences. - if (escaped) { - path += escaped[1]; - continue - } - - var next = str[index]; - var prefix = res[2]; - var name = res[3]; - var capture = res[4]; - var group = res[5]; - var modifier = res[6]; - var asterisk = res[7]; - - // Push the current path onto the tokens. - if (path) { - tokens.push(path); - path = ''; - } - - var partial = prefix != null && next != null && next !== prefix; - var repeat = modifier === '+' || modifier === '*'; - var optional = modifier === '?' || modifier === '*'; - var delimiter = res[2] || defaultDelimiter; - var pattern = capture || group; - - tokens.push({ - name: name || key++, - prefix: prefix || '', - delimiter: delimiter, - optional: optional, - repeat: repeat, - partial: partial, - asterisk: !!asterisk, - pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?') - }); - } - - // Match any characters still remaining. - if (index < str.length) { - path += str.substr(index); - } - - // If the path exists, push it onto the end. - if (path) { - tokens.push(path); - } - - return tokens - } - - /** - * Compile a string to a template function for the path. - * - * @param {string} str - * @param {Object=} options - * @return {!function(Object=, Object=)} - */ - function compile (str, options) { - return tokensToFunction(parse(str, options)) - } - - /** - * Prettier encoding of URI path segments. - * - * @param {string} - * @return {string} - */ - function encodeURIComponentPretty (str) { - return encodeURI(str).replace(/[\/?#]/g, function (c) { - return '%' + c.charCodeAt(0).toString(16).toUpperCase() - }) - } - - /** - * Encode the asterisk parameter. Similar to `pretty`, but allows slashes. - * - * @param {string} - * @return {string} - */ - function encodeAsterisk (str) { - return encodeURI(str).replace(/[?#]/g, function (c) { - return '%' + c.charCodeAt(0).toString(16).toUpperCase() - }) - } - - /** - * Expose a method for transforming tokens into the path function. - */ - function tokensToFunction (tokens) { - // Compile all the tokens into regexps. - var matches = new Array(tokens.length); - - // Compile all the patterns before compilation. - for (var i = 0; i < tokens.length; i++) { - if (typeof tokens[i] === 'object') { - matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$'); - } - } - - return function (obj, opts) { - var path = ''; - var data = obj || {}; - var options = opts || {}; - var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent; - - for (var i = 0; i < tokens.length; i++) { - var token = tokens[i]; - - if (typeof token === 'string') { - path += token; - - continue - } - - var value = data[token.name]; - var segment; - - if (value == null) { - if (token.optional) { - // Prepend partial segment prefixes. - if (token.partial) { - path += token.prefix; - } - - continue - } else { - throw new TypeError('Expected "' + token.name + '" to be defined') - } - } - - if (isarray(value)) { - if (!token.repeat) { - throw new TypeError('Expected "' + token.name + '" to not repeat, but received `' + JSON.stringify(value) + '`') - } - - if (value.length === 0) { - if (token.optional) { - continue - } else { - throw new TypeError('Expected "' + token.name + '" to not be empty') - } - } - - for (var j = 0; j < value.length; j++) { - segment = encode(value[j]); - - if (!matches[i].test(segment)) { - throw new TypeError('Expected all "' + token.name + '" to match "' + token.pattern + '", but received `' + JSON.stringify(segment) + '`') - } - - path += (j === 0 ? token.prefix : token.delimiter) + segment; - } - - continue - } - - segment = token.asterisk ? encodeAsterisk(value) : encode(value); - - if (!matches[i].test(segment)) { - throw new TypeError('Expected "' + token.name + '" to match "' + token.pattern + '", but received "' + segment + '"') - } - - path += token.prefix + segment; - } - - return path - } - } - - /** - * Escape a regular expression string. - * - * @param {string} str - * @return {string} - */ - function escapeString (str) { - return str.replace(/([.+*?=^!:${}()[\]|\/\\])/g, '\\$1') - } - - /** - * Escape the capturing group by escaping special characters and meaning. - * - * @param {string} group - * @return {string} - */ - function escapeGroup (group) { - return group.replace(/([=!:$\/()])/g, '\\$1') - } - - /** - * Attach the keys as a property of the regexp. - * - * @param {!RegExp} re - * @param {Array} keys - * @return {!RegExp} - */ - function attachKeys (re, keys) { - re.keys = keys; - return re - } - - /** - * Get the flags for a regexp from the options. - * - * @param {Object} options - * @return {string} - */ - function flags (options) { - return options.sensitive ? '' : 'i' - } - - /** - * Pull out keys from a regexp. - * - * @param {!RegExp} path - * @param {!Array} keys - * @return {!RegExp} - */ - function regexpToRegexp (path, keys) { - // Use a negative lookahead to match only capturing groups. - var groups = path.source.match(/\((?!\?)/g); - - if (groups) { - for (var i = 0; i < groups.length; i++) { - keys.push({ - name: i, - prefix: null, - delimiter: null, - optional: false, - repeat: false, - partial: false, - asterisk: false, - pattern: null - }); - } - } - - return attachKeys(path, keys) - } - - /** - * Transform an array into a regexp. - * - * @param {!Array} path - * @param {Array} keys - * @param {!Object} options - * @return {!RegExp} - */ - function arrayToRegexp (path, keys, options) { - var parts = []; - - for (var i = 0; i < path.length; i++) { - parts.push(pathToRegexp(path[i], keys, options).source); - } - - var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options)); - - return attachKeys(regexp, keys) - } - - /** - * Create a path regexp from string input. - * - * @param {string} path - * @param {!Array} keys - * @param {!Object} options - * @return {!RegExp} - */ - function stringToRegexp (path, keys, options) { - return tokensToRegExp(parse(path, options), keys, options) - } - - /** - * Expose a function for taking tokens and returning a RegExp. - * - * @param {!Array} tokens - * @param {(Array|Object)=} keys - * @param {Object=} options - * @return {!RegExp} - */ - function tokensToRegExp (tokens, keys, options) { - if (!isarray(keys)) { - options = /** @type {!Object} */ (keys || options); - keys = []; - } - - options = options || {}; - - var strict = options.strict; - var end = options.end !== false; - var route = ''; - - // Iterate over the tokens and create our regexp string. - for (var i = 0; i < tokens.length; i++) { - var token = tokens[i]; - - if (typeof token === 'string') { - route += escapeString(token); - } else { - var prefix = escapeString(token.prefix); - var capture = '(?:' + token.pattern + ')'; - - keys.push(token); - - if (token.repeat) { - capture += '(?:' + prefix + capture + ')*'; - } - - if (token.optional) { - if (!token.partial) { - capture = '(?:' + prefix + '(' + capture + '))?'; - } else { - capture = prefix + '(' + capture + ')?'; - } - } else { - capture = prefix + '(' + capture + ')'; - } - - route += capture; - } - } - - var delimiter = escapeString(options.delimiter || '/'); - var endsWithDelimiter = route.slice(-delimiter.length) === delimiter; - - // In non-strict mode we allow a slash at the end of match. If the path to - // match already ends with a slash, we remove it for consistency. The slash - // is valid at the end of a path match, not in the middle. This is important - // in non-ending mode, where "/test/" shouldn't match "/test//route". - if (!strict) { - route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'; - } - - if (end) { - route += '$'; - } else { - // In non-ending mode, we need the capturing groups to match as much as - // possible by using a positive lookahead to the end or next path segment. - route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'; - } - - return attachKeys(new RegExp('^' + route, flags(options)), keys) - } - - /** - * Normalize the given path string, returning a regular expression. - * - * An empty array can be passed in for the keys, which will hold the - * placeholder key descriptions. For example, using `/user/:id`, `keys` will - * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`. - * - * @param {(string|RegExp|Array)} path - * @param {(Array|Object)=} keys - * @param {Object=} options - * @return {!RegExp} - */ - function pathToRegexp (path, keys, options) { - if (!isarray(keys)) { - options = /** @type {!Object} */ (keys || options); - keys = []; - } - - options = options || {}; - - if (path instanceof RegExp) { - return regexpToRegexp(path, /** @type {!Array} */ (keys)) - } - - if (isarray(path)) { - return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options) - } - - return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options) - } - pathToRegexp_1.parse = parse_1; - pathToRegexp_1.compile = compile_1; - pathToRegexp_1.tokensToFunction = tokensToFunction_1; - pathToRegexp_1.tokensToRegExp = tokensToRegExp_1; - - var cache = {}; - var cacheLimit = 10000; - var cacheCount = 0; - - function compilePath(path) { - if (cache[path]) return cache[path]; - var generator = pathToRegexp_1.compile(path); - - if (cacheCount < cacheLimit) { - cache[path] = generator; - cacheCount++; - } - - return generator; - } - /** - * Public API for generating a URL pathname from a path and parameters. - */ - - - function generatePath(path, params) { - if (path === void 0) { - path = "/"; - } - - if (params === void 0) { - params = {}; - } - - return path === "/" ? path : compilePath(path)(params, { - pretty: true - }); - } - - /** - * The public API for navigating programmatically with a component. - */ - - function Redirect(_ref) { - var computedMatch = _ref.computedMatch, - to = _ref.to, - _ref$push = _ref.push, - push = _ref$push === void 0 ? false : _ref$push; - return React__default.createElement(context.Consumer, null, function (context) { - !context ? invariant(false, "You should not use outside a ") : void 0; - var history = context.history, - staticContext = context.staticContext; - var method = push ? history.push : history.replace; - var location = createLocation(computedMatch ? typeof to === "string" ? generatePath(to, computedMatch.params) : _extends({}, to, { - pathname: generatePath(to.pathname, computedMatch.params) - }) : to); // When rendering in a static context, - // set the new location immediately. - - if (staticContext) { - method(location); - return null; - } - - return React__default.createElement(Lifecycle, { - onMount: function onMount() { - method(location); - }, - onUpdate: function onUpdate(self, prevProps) { - var prevLocation = createLocation(prevProps.to); - - if (!locationsAreEqual(prevLocation, _extends({}, location, { - key: prevLocation.key - }))) { - method(location); - } - }, - to: to - }); - }); - } - - { - Redirect.propTypes = { - push: propTypes.bool, - from: propTypes.string, - to: propTypes.oneOfType([propTypes.string, propTypes.object]).isRequired - }; - } - - var cache$1 = {}; - var cacheLimit$1 = 10000; - var cacheCount$1 = 0; - - function compilePath$1(path, options) { - var cacheKey = "" + options.end + options.strict + options.sensitive; - var pathCache = cache$1[cacheKey] || (cache$1[cacheKey] = {}); - if (pathCache[path]) return pathCache[path]; - var keys = []; - var regexp = pathToRegexp_1(path, keys, options); - var result = { - regexp: regexp, - keys: keys - }; - - if (cacheCount$1 < cacheLimit$1) { - pathCache[path] = result; - cacheCount$1++; - } - - return result; - } - /** - * Public API for matching a URL pathname to a path. - */ - - - function matchPath(pathname, options) { - if (options === void 0) { - options = {}; - } - - if (typeof options === "string" || Array.isArray(options)) { - options = { - path: options - }; - } - - var _options = options, - path = _options.path, - _options$exact = _options.exact, - exact = _options$exact === void 0 ? false : _options$exact, - _options$strict = _options.strict, - strict = _options$strict === void 0 ? false : _options$strict, - _options$sensitive = _options.sensitive, - sensitive = _options$sensitive === void 0 ? false : _options$sensitive; - var paths = [].concat(path); - return paths.reduce(function (matched, path) { - if (!path && path !== "") return null; - if (matched) return matched; - - var _compilePath = compilePath$1(path, { - end: exact, - strict: strict, - sensitive: sensitive - }), - regexp = _compilePath.regexp, - keys = _compilePath.keys; - - var match = regexp.exec(pathname); - if (!match) return null; - var url = match[0], - values = match.slice(1); - var isExact = pathname === url; - if (exact && !isExact) return null; - return { - path: path, - // the path used to match - url: path === "/" && url === "" ? "/" : url, - // the matched portion of the URL - isExact: isExact, - // whether or not we matched exactly - params: keys.reduce(function (memo, key, index) { - memo[key.name] = values[index]; - return memo; - }, {}) - }; - }, null); - } - - function isEmptyChildren(children) { - return React__default.Children.count(children) === 0; - } - - function evalChildrenDev(children, props, path) { - var value = children(props); - warning(value !== undefined, "You returned `undefined` from the `children` function of " + (", but you ") + "should have returned a React element or `null`") ; - return value || null; - } - /** - * The public API for matching a single path and rendering. - */ - - - var Route = - /*#__PURE__*/ - function (_React$Component) { - _inheritsLoose(Route, _React$Component); - - function Route() { - return _React$Component.apply(this, arguments) || this; - } - - var _proto = Route.prototype; - - _proto.render = function render() { - var _this = this; - - return React__default.createElement(context.Consumer, null, function (context$1) { - !context$1 ? invariant(false, "You should not use outside a ") : void 0; - var location = _this.props.location || context$1.location; - var match = _this.props.computedMatch ? _this.props.computedMatch // already computed the match for us - : _this.props.path ? matchPath(location.pathname, _this.props) : context$1.match; - - var props = _extends({}, context$1, { - location: location, - match: match - }); - - var _this$props = _this.props, - children = _this$props.children, - component = _this$props.component, - render = _this$props.render; // Preact uses an empty array as children by - // default, so use null if that's the case. - - if (Array.isArray(children) && children.length === 0) { - children = null; - } - - return React__default.createElement(context.Provider, { - value: props - }, props.match ? children ? typeof children === "function" ? evalChildrenDev(children, props, _this.props.path) : children : component ? React__default.createElement(component, props) : render ? render(props) : null : typeof children === "function" ? evalChildrenDev(children, props, _this.props.path) : null); - }); - }; - - return Route; - }(React__default.Component); - - { - Route.propTypes = { - children: propTypes.oneOfType([propTypes.func, propTypes.node]), - component: function component(props, propName) { - if (props[propName] && !reactIs_1(props[propName])) { - return new Error("Invalid prop 'component' supplied to 'Route': the prop is not a valid React component"); - } - }, - exact: propTypes.bool, - location: propTypes.object, - path: propTypes.oneOfType([propTypes.string, propTypes.arrayOf(propTypes.string)]), - render: propTypes.func, - sensitive: propTypes.bool, - strict: propTypes.bool - }; - - Route.prototype.componentDidMount = function () { - warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.component), "You should not use and in the same route; will be ignored") ; - warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.render), "You should not use and in the same route; will be ignored") ; - warning(!(this.props.component && this.props.render), "You should not use and in the same route; will be ignored") ; - }; - - Route.prototype.componentDidUpdate = function (prevProps) { - warning(!(this.props.location && !prevProps.location), ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no "location" prop and then provided one on a subsequent render.') ; - warning(!(!this.props.location && prevProps.location), ' elements should not change from controlled to uncontrolled (or vice versa). You provided a "location" prop initially but omitted it on a subsequent render.') ; - }; - } - - function _objectWithoutPropertiesLoose(source, excluded) { - if (source == null) return {}; - var target = {}; - var sourceKeys = Object.keys(source); - var key, i; - - for (i = 0; i < sourceKeys.length; i++) { - key = sourceKeys[i]; - if (excluded.indexOf(key) >= 0) continue; - target[key] = source[key]; - } - - return target; - } - - function addLeadingSlash(path) { - return path.charAt(0) === "/" ? path : "/" + path; - } - - function addBasename(basename, location) { - if (!basename) return location; - return _extends({}, location, { - pathname: addLeadingSlash(basename) + location.pathname - }); - } - - function stripBasename(basename, location) { - if (!basename) return location; - var base = addLeadingSlash(basename); - if (location.pathname.indexOf(base) !== 0) return location; - return _extends({}, location, { - pathname: location.pathname.substr(base.length) - }); - } - - function createURL(location) { - return typeof location === "string" ? location : createPath(location); - } - - function staticHandler(methodName) { - return function () { - invariant(false, "You cannot %s with ") ; - }; - } - - function noop() {} - /** - * The public top-level API for a "static" , so-called because it - * can't actually change the current location. Instead, it just records - * location changes in a context object. Useful mainly in testing and - * server-rendering scenarios. - */ - - - var StaticRouter = - /*#__PURE__*/ - function (_React$Component) { - _inheritsLoose(StaticRouter, _React$Component); - - function StaticRouter() { - var _this; - - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this; - - _this.handlePush = function (location) { - return _this.navigateTo(location, "PUSH"); - }; - - _this.handleReplace = function (location) { - return _this.navigateTo(location, "REPLACE"); - }; - - _this.handleListen = function () { - return noop; - }; - - _this.handleBlock = function () { - return noop; - }; - - return _this; - } - - var _proto = StaticRouter.prototype; - - _proto.navigateTo = function navigateTo(location, action) { - var _this$props = this.props, - _this$props$basename = _this$props.basename, - basename = _this$props$basename === void 0 ? "" : _this$props$basename, - _this$props$context = _this$props.context, - context = _this$props$context === void 0 ? {} : _this$props$context; - context.action = action; - context.location = addBasename(basename, createLocation(location)); - context.url = createURL(context.location); - }; - - _proto.render = function render() { - var _this$props2 = this.props, - _this$props2$basename = _this$props2.basename, - basename = _this$props2$basename === void 0 ? "" : _this$props2$basename, - _this$props2$context = _this$props2.context, - context = _this$props2$context === void 0 ? {} : _this$props2$context, - _this$props2$location = _this$props2.location, - location = _this$props2$location === void 0 ? "/" : _this$props2$location, - rest = _objectWithoutPropertiesLoose(_this$props2, ["basename", "context", "location"]); - - var history = { - createHref: function createHref(path) { - return addLeadingSlash(basename + createURL(path)); - }, - action: "POP", - location: stripBasename(basename, createLocation(location)), - push: this.handlePush, - replace: this.handleReplace, - go: staticHandler(), - goBack: staticHandler(), - goForward: staticHandler(), - listen: this.handleListen, - block: this.handleBlock - }; - return React__default.createElement(Router, _extends({}, rest, { - history: history, - staticContext: context - })); - }; - - return StaticRouter; - }(React__default.Component); - - { - StaticRouter.propTypes = { - basename: propTypes.string, - context: propTypes.object, - location: propTypes.oneOfType([propTypes.string, propTypes.object]) - }; - - StaticRouter.prototype.componentDidMount = function () { - warning(!this.props.history, " ignores the history prop. To use a custom history, " + "use `import { Router }` instead of `import { StaticRouter as Router }`.") ; - }; - } - - /** - * The public API for rendering the first that matches. - */ - - var Switch = - /*#__PURE__*/ - function (_React$Component) { - _inheritsLoose(Switch, _React$Component); - - function Switch() { - return _React$Component.apply(this, arguments) || this; - } - - var _proto = Switch.prototype; - - _proto.render = function render() { - var _this = this; - - return React__default.createElement(context.Consumer, null, function (context) { - !context ? invariant(false, "You should not use outside a ") : void 0; - var location = _this.props.location || context.location; - var element, match; // We use React.Children.forEach instead of React.Children.toArray().find() - // here because toArray adds keys to all child elements and we do not want - // to trigger an unmount/remount for two s that render the same - // component at different URLs. - - React__default.Children.forEach(_this.props.children, function (child) { - if (match == null && React__default.isValidElement(child)) { - element = child; - var path = child.props.path || child.props.from; - match = path ? matchPath(location.pathname, _extends({}, child.props, { - path: path - })) : context.match; - } - }); - return match ? React__default.cloneElement(element, { - location: location, - computedMatch: match - }) : null; - }); - }; - - return Switch; - }(React__default.Component); - - { - Switch.propTypes = { - children: propTypes.node, - location: propTypes.object - }; - - Switch.prototype.componentDidUpdate = function (prevProps) { - warning(!(this.props.location && !prevProps.location), ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no "location" prop and then provided one on a subsequent render.') ; - warning(!(!this.props.location && prevProps.location), ' elements should not change from controlled to uncontrolled (or vice versa). You provided a "location" prop initially but omitted it on a subsequent render.') ; - }; - } - - /** - * Copyright 2015, Yahoo! Inc. - * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. - */ - - var REACT_STATICS = { - childContextTypes: true, - contextType: true, - contextTypes: true, - defaultProps: true, - displayName: true, - getDefaultProps: true, - getDerivedStateFromError: true, - getDerivedStateFromProps: true, - mixins: true, - propTypes: true, - type: true - }; - - var KNOWN_STATICS = { - name: true, - length: true, - prototype: true, - caller: true, - callee: true, - arguments: true, - arity: true - }; - - var FORWARD_REF_STATICS = { - '$$typeof': true, - render: true, - defaultProps: true, - displayName: true, - propTypes: true - }; - - var MEMO_STATICS = { - '$$typeof': true, - compare: true, - defaultProps: true, - displayName: true, - propTypes: true, - type: true - }; - - var TYPE_STATICS = {}; - TYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS; - - function getStatics(component) { - if (reactIs.isMemo(component)) { - return MEMO_STATICS; - } - return TYPE_STATICS[component['$$typeof']] || REACT_STATICS; - } - - var defineProperty = Object.defineProperty; - var getOwnPropertyNames = Object.getOwnPropertyNames; - var getOwnPropertySymbols$1 = Object.getOwnPropertySymbols; - var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; - var getPrototypeOf = Object.getPrototypeOf; - var objectPrototype = Object.prototype; - - function hoistNonReactStatics(targetComponent, sourceComponent, blacklist) { - if (typeof sourceComponent !== 'string') { - // don't hoist over string (html) components - - if (objectPrototype) { - var inheritedComponent = getPrototypeOf(sourceComponent); - if (inheritedComponent && inheritedComponent !== objectPrototype) { - hoistNonReactStatics(targetComponent, inheritedComponent, blacklist); - } - } - - var keys = getOwnPropertyNames(sourceComponent); - - if (getOwnPropertySymbols$1) { - keys = keys.concat(getOwnPropertySymbols$1(sourceComponent)); - } - - var targetStatics = getStatics(targetComponent); - var sourceStatics = getStatics(sourceComponent); - - for (var i = 0; i < keys.length; ++i) { - var key = keys[i]; - if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) { - var descriptor = getOwnPropertyDescriptor(sourceComponent, key); - try { - // Avoid failures from read-only properties - defineProperty(targetComponent, key, descriptor); - } catch (e) {} - } - } - - return targetComponent; - } - - return targetComponent; - } - - var hoistNonReactStatics_cjs = hoistNonReactStatics; - - /** - * A public higher-order component to access the imperative API - */ - - function withRouter(Component) { - var displayName = "withRouter(" + (Component.displayName || Component.name) + ")"; - - var C = function C(props) { - var wrappedComponentRef = props.wrappedComponentRef, - remainingProps = _objectWithoutPropertiesLoose(props, ["wrappedComponentRef"]); - - return React__default.createElement(context.Consumer, null, function (context) { - !context ? invariant(false, "You should not use <" + displayName + " /> outside a ") : void 0; - return React__default.createElement(Component, _extends({}, remainingProps, context, { - ref: wrappedComponentRef - })); - }); - }; - - C.displayName = displayName; - C.WrappedComponent = Component; - - { - C.propTypes = { - wrappedComponentRef: propTypes.oneOfType([propTypes.string, propTypes.func, propTypes.object]) - }; - } - - return hoistNonReactStatics_cjs(C, Component); - } - - var useContext = React__default.useContext; - function useHistory() { - { - !(typeof useContext === "function") ? invariant(false, "You must use React >= 16.8 in order to use useHistory()") : void 0; - } - - return useContext(historyContext); - } - function useLocation() { - { - !(typeof useContext === "function") ? invariant(false, "You must use React >= 16.8 in order to use useLocation()") : void 0; - } - - return useContext(context).location; - } - function useParams() { - { - !(typeof useContext === "function") ? invariant(false, "You must use React >= 16.8 in order to use useParams()") : void 0; - } - - var match = useContext(context).match; - return match ? match.params : {}; - } - function useRouteMatch(path) { - { - !(typeof useContext === "function") ? invariant(false, "You must use React >= 16.8 in order to use useRouteMatch()") : void 0; - } - - var location = useLocation(); - var match = useContext(context).match; - return path ? matchPath(location.pathname, path) : match; - } - - { - if (typeof window !== "undefined") { - var global$1 = window; - var key = "__react_router_build__"; - var buildNames = { - cjs: "CommonJS", - esm: "ES modules", - umd: "UMD" - }; - - if (global$1[key] && global$1[key] !== "umd") { - var initialBuildName = buildNames[global$1[key]]; - var secondaryBuildName = buildNames["umd"]; // TODO: Add link to article that explains in detail how to avoid - // loading 2 different builds. - - throw new Error("You are loading the " + secondaryBuildName + " build of React Router " + ("on a page that is already running the " + initialBuildName + " ") + "build, so things won't work right."); - } - - global$1[key] = "umd"; - } - } - - exports.MemoryRouter = MemoryRouter; - exports.Prompt = Prompt; - exports.Redirect = Redirect; - exports.Route = Route; - exports.Router = Router; - exports.StaticRouter = StaticRouter; - exports.Switch = Switch; - exports.__HistoryContext = historyContext; - exports.__RouterContext = context; - exports.generatePath = generatePath; - exports.matchPath = matchPath; - exports.useHistory = useHistory; - exports.useLocation = useLocation; - exports.useParams = useParams; - exports.useRouteMatch = useRouteMatch; - exports.withRouter = withRouter; - - Object.defineProperty(exports, '__esModule', { value: true }); - -})); -//# sourceMappingURL=react-router.js.map diff --git a/node_modules/react-router/umd/react-router.js.map b/node_modules/react-router/umd/react-router.js.map deleted file mode 100644 index 0c0f4e5..0000000 --- a/node_modules/react-router/umd/react-router.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"react-router.js","sources":["../../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../../node_modules/react-is/cjs/react-is.production.min.js","../../node_modules/react-is/cjs/react-is.development.js","../../node_modules/react-is/index.js","../../node_modules/object-assign/index.js","../../node_modules/prop-types/lib/ReactPropTypesSecret.js","../../node_modules/prop-types/checkPropTypes.js","../../node_modules/prop-types/factoryWithTypeCheckers.js","../../node_modules/prop-types/index.js","../../node_modules/@babel/runtime/helpers/esm/extends.js","../../node_modules/resolve-pathname/index.js","../../node_modules/value-equal/index.js","../../node_modules/tiny-warning/dist/tiny-warning.esm.js","../../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","../../node_modules/history/esm/history.js","../../node_modules/mini-create-react-context/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../../node_modules/mini-create-react-context/dist/esm/index.js","../modules/createNameContext.js","../modules/HistoryContext.js","../modules/RouterContext.js","../modules/Router.js","../modules/MemoryRouter.js","../modules/Lifecycle.js","../modules/Prompt.js","../../node_modules/path-to-regexp/node_modules/isarray/index.js","../../node_modules/path-to-regexp/index.js","../modules/generatePath.js","../modules/Redirect.js","../modules/matchPath.js","../modules/Route.js","../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../modules/StaticRouter.js","../modules/Switch.js","../../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../modules/withRouter.js","../modules/hooks.js","../modules/index.js"],"sourcesContent":["export default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","/** @license React v16.9.0\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';Object.defineProperty(exports,\"__esModule\",{value:!0});\nvar b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?Symbol.for(\"react.suspense_list\"):\n60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.fundamental\"):60117,w=b?Symbol.for(\"react.responder\"):60118;function x(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case h:return a;default:return u}}case t:case r:case d:return u}}}function y(a){return x(a)===m}exports.typeOf=x;exports.AsyncMode=l;\nexports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===v||a.$$typeof===w)};exports.isAsyncMode=function(a){return y(a)||x(a)===l};exports.isConcurrentMode=y;exports.isContextConsumer=function(a){return x(a)===k};exports.isContextProvider=function(a){return x(a)===h};\nexports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return x(a)===n};exports.isFragment=function(a){return x(a)===e};exports.isLazy=function(a){return x(a)===t};exports.isMemo=function(a){return x(a)===r};exports.isPortal=function(a){return x(a)===d};exports.isProfiler=function(a){return x(a)===g};exports.isStrictMode=function(a){return x(a)===f};exports.isSuspense=function(a){return x(a)===p};\n","/** @license React v16.9.0\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\n\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace;\n// TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' ||\n // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE);\n}\n\n/**\n * Forked from fbjs/warning:\n * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js\n *\n * Only change is we use console.warn instead of console.error,\n * and do nothing when 'console' is not supported.\n * This really simplifies the code.\n * ---\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar lowPriorityWarning = function () {};\n\n{\n var printWarning = function (format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.warn(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n lowPriorityWarning = function (condition, format) {\n if (format === undefined) {\n throw new Error('`lowPriorityWarning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nvar lowPriorityWarning$1 = lowPriorityWarning;\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n default:\n return $$typeof;\n }\n }\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n}\n\n// AsyncMode is deprecated along with isAsyncMode\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\n\nvar hasWarnedAboutDeprecatedIsAsyncMode = false;\n\n// AsyncMode should be deprecated\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true;\n lowPriorityWarning$1(false, 'The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.typeOf = typeOf;\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isValidElementType = isValidElementType;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar has = Function.call.bind(Object.prototype.hasOwnProperty);\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to) {\n var from = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n var toParts = to && to.split('/') || [];\n var fromParts = from && from.split('/') || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash = void 0;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) {\n fromParts.unshift('..');\n }if (mustEndAbs && fromParts[0] !== '' && (!fromParts[0] || !isAbsolute(fromParts[0]))) fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction valueEqual(a, b) {\n if (a === b) return true;\n\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n return Array.isArray(b) && a.length === b.length && a.every(function (item, index) {\n return valueEqual(item, b[index]);\n });\n }\n\n var aType = typeof a === 'undefined' ? 'undefined' : _typeof(a);\n var bType = typeof b === 'undefined' ? 'undefined' : _typeof(b);\n\n if (aType !== bType) return false;\n\n if (aType === 'object') {\n var aValue = a.valueOf();\n var bValue = b.valueOf();\n\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n var aKeys = Object.keys(a);\n var bKeys = Object.keys(b);\n\n if (aKeys.length !== bKeys.length) return false;\n\n return aKeys.every(function (key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n\nexport default valueEqual;","var isProduction = process.env.NODE_ENV === 'production';\nfunction warning(condition, message) {\n if (!isProduction) {\n if (condition) {\n return;\n }\n\n var text = \"Warning: \" + message;\n\n if (typeof console !== 'undefined') {\n console.warn(text);\n }\n\n try {\n throw Error(text);\n } catch (x) {}\n }\n}\n\nexport default warning;\n","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n\n if (isProduction) {\n throw new Error(prefix);\n } else {\n throw new Error(prefix + \": \" + (message || ''));\n }\n}\n\nexport default invariant;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return new RegExp('^' + prefix + '(\\\\/|\\\\?|#|$)', 'i').test(path);\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n var hashIndex = window.location.href.indexOf('#');\n window.location.replace(window.location.href.slice(0, hashIndex >= 0 ? hashIndex : 0) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n return '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","export default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","import React, { Component } from 'react';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport warning from 'tiny-warning';\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {};\n\nfunction getUniqueId() {\n var key = '__global_unique_id__';\n return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1;\n}\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + getUniqueId() + '__';\n\n var Provider = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Provider, _Component);\n\n function Provider() {\n var _this;\n\n _this = _Component.apply(this, arguments) || this;\n _this.emitter = createEventEmitter(_this.props.value);\n return _this;\n }\n\n var _proto = Provider.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0;\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (process.env.NODE_ENV !== 'production') {\n warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: ' + changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes.object.isRequired, _Provider$childContex);\n\n var Consumer = /*#__PURE__*/function (_Component2) {\n _inheritsLoose(Consumer, _Component2);\n\n function Consumer() {\n var _this2;\n\n _this2 = _Component2.apply(this, arguments) || this;\n _this2.state = {\n value: _this2.getValue()\n };\n\n _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n };\n\n return _this2;\n }\n\n var _proto2 = Consumer.prototype;\n\n _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n _proto2.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n _proto2.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = PropTypes.object, _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nvar index = React.createContext || createReactContext;\n\nexport default index;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nexport default createNamedContext;\n","import createNamedContext from \"./createNameContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport HistoryContext from \"./HistoryContext.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n } else {\n this._pendingLocation = location;\n }\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) this.unlisten();\n }\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change \"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\n/**\n * The public API for a that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for prompting the user before navigating away from a screen.\n */\nfunction Prompt({ message, when = true }) {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n if (!when || context.staticContext) return null;\n\n const method = context.history.block;\n\n return (\n {\n self.release = method(message);\n }}\n onUpdate={(self, prevProps) => {\n if (prevProps.message !== message) {\n self.release();\n self.release = method(message);\n }\n }}\n onUnmount={self => {\n self.release();\n }}\n message={message}\n />\n );\n }}\n \n );\n}\n\nif (__DEV__) {\n const messageType = PropTypes.oneOfType([PropTypes.func, PropTypes.string]);\n\n Prompt.propTypes = {\n when: PropTypes.bool,\n message: messageType.isRequired\n };\n}\n\nexport default Prompt;\n","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = res[2] || defaultDelimiter\n var pattern = capture || group\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options))\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$')\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n\n const generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\nfunction generatePath(path = \"/\", params = {}) {\n return path === \"/\" ? path : compilePath(path)(params, { pretty: true });\n}\n\nexport default generatePath;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, locationsAreEqual } from \"history\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle.js\";\nimport RouterContext from \"./RouterContext.js\";\nimport generatePath from \"./generatePath.js\";\n\n/**\n * The public API for navigating programmatically with a component.\n */\nfunction Redirect({ computedMatch, to, push = false }) {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history, staticContext } = context;\n\n const method = push ? history.push : history.replace;\n const location = createLocation(\n computedMatch\n ? typeof to === \"string\"\n ? generatePath(to, computedMatch.params)\n : {\n ...to,\n pathname: generatePath(to.pathname, computedMatch.params)\n }\n : to\n );\n\n // When rendering in a static context,\n // set the new location immediately.\n if (staticContext) {\n method(location);\n return null;\n }\n\n return (\n {\n method(location);\n }}\n onUpdate={(self, prevProps) => {\n const prevLocation = createLocation(prevProps.to);\n if (\n !locationsAreEqual(prevLocation, {\n ...location,\n key: prevLocation.key\n })\n ) {\n method(location);\n }\n }}\n to={to}\n />\n );\n }}\n \n );\n}\n\nif (__DEV__) {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nexport default Redirect;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && children.length === 0) {\n children = null;\n }\n\n return (\n \n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n \n );\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use and in the same route; will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with \", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return ;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\n/**\n * The public API for rendering the first that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","'use strict';\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar ReactIs = require('react-is');\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\n\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\n\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\n\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\n\nvar TYPE_STATICS = {};\nTYPE_STATICS[ReactIs.ForwardRef] = FORWARD_REF_STATICS;\n\nfunction getStatics(component) {\n if (ReactIs.isMemo(component)) {\n return MEMO_STATICS;\n }\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\n\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n\n return targetComponent;\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport hoistStatics from \"hoist-non-react-statics\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * A public higher-order component to access the imperative API\n */\nfunction withRouter(Component) {\n const displayName = `withRouter(${Component.displayName || Component.name})`;\n const C = props => {\n const { wrappedComponentRef, ...remainingProps } = props;\n\n return (\n \n {context => {\n invariant(\n context,\n `You should not use <${displayName} /> outside a `\n );\n return (\n \n );\n }}\n \n );\n };\n\n C.displayName = displayName;\n C.WrappedComponent = Component;\n\n if (__DEV__) {\n C.propTypes = {\n wrappedComponentRef: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.object\n ])\n };\n }\n\n return hoistStatics(C, Component);\n}\n\nexport default withRouter;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport Context from \"./RouterContext.js\";\nimport HistoryContext from \"./HistoryContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(HistoryContext);\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(Context).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(Context).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n const location = useLocation();\n const match = useContext(Context).match;\n\n return path ? matchPath(location.pathname, path) : match;\n}\n","if (__DEV__) {\n if (typeof window !== \"undefined\") {\n const global = window;\n const key = \"__react_router_build__\";\n const buildNames = { cjs: \"CommonJS\", esm: \"ES modules\", umd: \"UMD\" };\n\n if (global[key] && global[key] !== process.env.BUILD_FORMAT) {\n const initialBuildName = buildNames[global[key]];\n const secondaryBuildName = buildNames[process.env.BUILD_FORMAT];\n\n // TODO: Add link to article that explains in detail how to avoid\n // loading 2 different builds.\n throw new Error(\n `You are loading the ${secondaryBuildName} build of React Router ` +\n `on a page that is already running the ${initialBuildName} ` +\n `build, so things won't work right.`\n );\n }\n\n global[key] = process.env.BUILD_FORMAT;\n }\n}\n\nexport { default as MemoryRouter } from \"./MemoryRouter.js\";\nexport { default as Prompt } from \"./Prompt.js\";\nexport { default as Redirect } from \"./Redirect.js\";\nexport { default as Route } from \"./Route.js\";\nexport { default as Router } from \"./Router.js\";\nexport { default as StaticRouter } from \"./StaticRouter.js\";\nexport { default as Switch } from \"./Switch.js\";\nexport { default as generatePath } from \"./generatePath.js\";\nexport { default as matchPath } from \"./matchPath.js\";\nexport { default as withRouter } from \"./withRouter.js\";\n\nimport { useHistory, useLocation, useParams, useRouteMatch } from \"./hooks.js\";\nexport { useHistory, useLocation, useParams, useRouteMatch };\n\nexport { default as __HistoryContext } from \"./HistoryContext.js\";\nexport { default as __RouterContext } from \"./RouterContext.js\";\n"],"names":["require$$1","ReactPropTypesSecret","require$$0","has","printWarning","ReactIs","assign","checkPropTypes","_inheritsLoose","Component","PropTypes","React","createNamedContext","name","context","createContext","displayName","historyContext","Router","computeRootMatch","pathname","path","url","params","isExact","props","state","location","history","_isMounted","_pendingLocation","staticContext","unlisten","listen","setState","componentDidMount","componentWillUnmount","render","RouterContext","match","HistoryContext","children","propTypes","node","object","isRequired","prototype","componentDidUpdate","prevProps","warning","MemoryRouter","createHistory","initialEntries","array","initialIndex","number","getUserConfirmation","func","keyLength","Lifecycle","onMount","call","onUpdate","onUnmount","Prompt","message","when","invariant","method","block","self","release","messageType","oneOfType","string","bool","cache","cacheLimit","cacheCount","compilePath","generator","pathToRegexp","compile","generatePath","pretty","Redirect","computedMatch","to","push","replace","createLocation","prevLocation","locationsAreEqual","key","from","options","cacheKey","end","strict","sensitive","pathCache","keys","regexp","result","matchPath","Array","isArray","exact","paths","concat","reduce","matched","exec","values","memo","index","isEmptyChildren","Children","count","evalChildrenDev","value","undefined","Route","component","length","createElement","propName","isValidElementType","Error","arrayOf","addLeadingSlash","charAt","addBasename","basename","stripBasename","base","indexOf","substr","createURL","createPath","staticHandler","methodName","noop","StaticRouter","handlePush","navigateTo","handleReplace","handleListen","handleBlock","action","rest","createHref","go","goBack","goForward","Switch","element","forEach","child","isValidElement","cloneElement","getOwnPropertySymbols","withRouter","C","wrappedComponentRef","remainingProps","WrappedComponent","hoistStatics","useContext","useHistory","useLocation","Context","useParams","useRouteMatch","window","global","buildNames","cjs","esm","umd","process","initialBuildName","secondaryBuildName"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/react-router/umd/react-router.min.js b/node_modules/react-router/umd/react-router.min.js deleted file mode 100644 index e97f0bc..0000000 --- a/node_modules/react-router/umd/react-router.min.js +++ /dev/null @@ -1,2 +0,0 @@ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("react")):"function"==typeof define&&define.amd?define(["exports","react"],e):e((t=t||self).ReactRouter={},t.React)}(this,function(t,c){"use strict";var s="default"in c?c.default:c;function r(t,e){t.prototype=Object.create(e.prototype),(t.prototype.constructor=t).__proto__=e}function e(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function n(t,e){return t(e={exports:{}},e.exports),e.exports}var o=n(function(t,e){Object.defineProperty(e,"__esModule",{value:!0});var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,o=n?Symbol.for("react.portal"):60106,i=n?Symbol.for("react.fragment"):60107,a=n?Symbol.for("react.strict_mode"):60108,c=n?Symbol.for("react.profiler"):60114,u=n?Symbol.for("react.provider"):60109,s=n?Symbol.for("react.context"):60110,p=n?Symbol.for("react.async_mode"):60111,l=n?Symbol.for("react.concurrent_mode"):60111,f=n?Symbol.for("react.forward_ref"):60112,h=n?Symbol.for("react.suspense"):60113,d=n?Symbol.for("react.suspense_list"):60120,m=n?Symbol.for("react.memo"):60115,y=n?Symbol.for("react.lazy"):60116,v=n?Symbol.for("react.fundamental"):60117,g=n?Symbol.for("react.responder"):60118;function b(t){if("object"==typeof t&&null!==t){var e=t.$$typeof;switch(e){case r:switch(t=t.type){case p:case l:case i:case c:case a:case h:return t;default:switch(t=t&&t.$$typeof){case s:case f:case u:return t;default:return e}}case y:case m:case o:return e}}}function x(t){return b(t)===l}e.typeOf=b,e.AsyncMode=p,e.ConcurrentMode=l,e.ContextConsumer=s,e.ContextProvider=u,e.Element=r,e.ForwardRef=f,e.Fragment=i,e.Lazy=y,e.Memo=m,e.Portal=o,e.Profiler=c,e.StrictMode=a,e.Suspense=h,e.isValidElementType=function(t){return"string"==typeof t||"function"==typeof t||t===i||t===l||t===c||t===a||t===h||t===d||"object"==typeof t&&null!==t&&(t.$$typeof===y||t.$$typeof===m||t.$$typeof===u||t.$$typeof===s||t.$$typeof===f||t.$$typeof===v||t.$$typeof===g)},e.isAsyncMode=function(t){return x(t)||b(t)===p},e.isConcurrentMode=x,e.isContextConsumer=function(t){return b(t)===s},e.isContextProvider=function(t){return b(t)===u},e.isElement=function(t){return"object"==typeof t&&null!==t&&t.$$typeof===r},e.isForwardRef=function(t){return b(t)===f},e.isFragment=function(t){return b(t)===i},e.isLazy=function(t){return b(t)===y},e.isMemo=function(t){return b(t)===m},e.isPortal=function(t){return b(t)===o},e.isProfiler=function(t){return b(t)===c},e.isStrictMode=function(t){return b(t)===a},e.isSuspense=function(t){return b(t)===h}});e(o);o.typeOf,o.AsyncMode,o.ConcurrentMode,o.ContextConsumer,o.ContextProvider,o.Element,o.ForwardRef,o.Fragment,o.Lazy,o.Memo,o.Portal,o.Profiler,o.StrictMode,o.Suspense,o.isValidElementType,o.isAsyncMode,o.isConcurrentMode,o.isContextConsumer,o.isContextProvider,o.isElement,o.isForwardRef,o.isFragment,o.isLazy,o.isMemo,o.isPortal,o.isProfiler,o.isStrictMode,o.isSuspense;var i=n(function(t,e){});e(i);i.typeOf,i.AsyncMode,i.ConcurrentMode,i.ContextConsumer,i.ContextProvider,i.Element,i.ForwardRef,i.Fragment,i.Lazy,i.Memo,i.Portal,i.Profiler,i.StrictMode,i.Suspense,i.isValidElementType,i.isAsyncMode,i.isConcurrentMode,i.isContextConsumer,i.isContextProvider,i.isElement,i.isForwardRef,i.isFragment,i.isLazy,i.isMemo,i.isPortal,i.isProfiler,i.isStrictMode,i.isSuspense;var a=n(function(t){t.exports=o}),u=(a.isValidElementType,Object.getOwnPropertySymbols),p=Object.prototype.hasOwnProperty,l=Object.prototype.propertyIsEnumerable;!function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},n=0;n<10;n++)e["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(e).map(function(t){return e[t]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(t){r[t]=t}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(t){return!1}}()||Object.assign,Function.call.bind(Object.prototype.hasOwnProperty);function f(){}function h(){}h.resetWarningCache=f;var d=n(function(t){t.exports=function(){function t(t,e,n,r,o,i){if("SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"!==i){var a=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw a.name="Invariant Violation",a}}function e(){return t}var n={array:t.isRequired=t,bool:t,func:t,number:t,object:t,string:t,symbol:t,any:t,arrayOf:e,element:t,elementType:t,instanceOf:e,node:t,objectOf:e,oneOf:e,oneOfType:e,shape:e,exact:e,checkPropTypes:h,resetWarningCache:f};return n.PropTypes=n}()});function v(){return(v=Object.assign||function(t){for(var e=1;ee?n.splice(e,n.length-e,r):n.push(r),p({action:"PUSH",location:r,index:e,entries:n})}})},replace:function(t,e){var n="REPLACE",r=C(t,e,l(),y.location);s.confirmTransitionTo(r,n,o,function(t){t&&(y.entries[y.index]=r,p({action:n,location:r}))})},go:m,goBack:function(){m(-1)},goForward:function(){m(1)},canGo:function(t){var e=y.index+t;return 0<=e&&e 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from\n // props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to) {\n var from = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n var toParts = to && to.split('/') || [];\n var fromParts = from && from.split('/') || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash = void 0;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) {\n fromParts.unshift('..');\n }if (mustEndAbs && fromParts[0] !== '' && (!fromParts[0] || !isAbsolute(fromParts[0]))) fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction valueEqual(a, b) {\n if (a === b) return true;\n\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n return Array.isArray(b) && a.length === b.length && a.every(function (item, index) {\n return valueEqual(item, b[index]);\n });\n }\n\n var aType = typeof a === 'undefined' ? 'undefined' : _typeof(a);\n var bType = typeof b === 'undefined' ? 'undefined' : _typeof(b);\n\n if (aType !== bType) return false;\n\n if (aType === 'object') {\n var aValue = a.valueOf();\n var bValue = b.valueOf();\n\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n var aKeys = Object.keys(a);\n var bKeys = Object.keys(b);\n\n if (aKeys.length !== bKeys.length) return false;\n\n return aKeys.every(function (key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n\nexport default valueEqual;","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n\n if (isProduction) {\n throw new Error(prefix);\n } else {\n throw new Error(prefix + \": \" + (message || ''));\n }\n}\n\nexport default invariant;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return new RegExp('^' + prefix + '(\\\\/|\\\\?|#|$)', 'i').test(path);\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n var hashIndex = window.location.href.indexOf('#');\n window.location.replace(window.location.href.slice(0, hashIndex >= 0 ? hashIndex : 0) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n return '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","export default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","import React, { Component } from 'react';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport warning from 'tiny-warning';\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {};\n\nfunction getUniqueId() {\n var key = '__global_unique_id__';\n return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1;\n}\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + getUniqueId() + '__';\n\n var Provider = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Provider, _Component);\n\n function Provider() {\n var _this;\n\n _this = _Component.apply(this, arguments) || this;\n _this.emitter = createEventEmitter(_this.props.value);\n return _this;\n }\n\n var _proto = Provider.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0;\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (process.env.NODE_ENV !== 'production') {\n warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: ' + changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes.object.isRequired, _Provider$childContex);\n\n var Consumer = /*#__PURE__*/function (_Component2) {\n _inheritsLoose(Consumer, _Component2);\n\n function Consumer() {\n var _this2;\n\n _this2 = _Component2.apply(this, arguments) || this;\n _this2.state = {\n value: _this2.getValue()\n };\n\n _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n };\n\n return _this2;\n }\n\n var _proto2 = Consumer.prototype;\n\n _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n _proto2.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n _proto2.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = PropTypes.object, _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nvar index = React.createContext || createReactContext;\n\nexport default index;\n","import createNamedContext from \"./createNameContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nexport default createNamedContext;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport HistoryContext from \"./HistoryContext.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n } else {\n this._pendingLocation = location;\n }\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) this.unlisten();\n }\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change \"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\n/**\n * The public API for a that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = res[2] || defaultDelimiter\n var pattern = capture || group\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options))\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$')\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n\n const generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\nfunction generatePath(path = \"/\", params = {}) {\n return path === \"/\" ? path : compilePath(path)(params, { pretty: true });\n}\n\nexport default generatePath;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && children.length === 0) {\n children = null;\n }\n\n return (\n \n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n \n );\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use and in the same route; will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with \", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return ;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\n/**\n * The public API for rendering the first that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","'use strict';\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar ReactIs = require('react-is');\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\n\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\n\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\n\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\n\nvar TYPE_STATICS = {};\nTYPE_STATICS[ReactIs.ForwardRef] = FORWARD_REF_STATICS;\n\nfunction getStatics(component) {\n if (ReactIs.isMemo(component)) {\n return MEMO_STATICS;\n }\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\n\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n\n return targetComponent;\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport Context from \"./RouterContext.js\";\nimport HistoryContext from \"./HistoryContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(HistoryContext);\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(Context).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(Context).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n const location = useLocation();\n const match = useContext(Context).match;\n\n return path ? matchPath(location.pathname, path) : match;\n}\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for prompting the user before navigating away from a screen.\n */\nfunction Prompt({ message, when = true }) {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n if (!when || context.staticContext) return null;\n\n const method = context.history.block;\n\n return (\n {\n self.release = method(message);\n }}\n onUpdate={(self, prevProps) => {\n if (prevProps.message !== message) {\n self.release();\n self.release = method(message);\n }\n }}\n onUnmount={self => {\n self.release();\n }}\n message={message}\n />\n );\n }}\n \n );\n}\n\nif (__DEV__) {\n const messageType = PropTypes.oneOfType([PropTypes.func, PropTypes.string]);\n\n Prompt.propTypes = {\n when: PropTypes.bool,\n message: messageType.isRequired\n };\n}\n\nexport default Prompt;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, locationsAreEqual } from \"history\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle.js\";\nimport RouterContext from \"./RouterContext.js\";\nimport generatePath from \"./generatePath.js\";\n\n/**\n * The public API for navigating programmatically with a component.\n */\nfunction Redirect({ computedMatch, to, push = false }) {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history, staticContext } = context;\n\n const method = push ? history.push : history.replace;\n const location = createLocation(\n computedMatch\n ? typeof to === \"string\"\n ? generatePath(to, computedMatch.params)\n : {\n ...to,\n pathname: generatePath(to.pathname, computedMatch.params)\n }\n : to\n );\n\n // When rendering in a static context,\n // set the new location immediately.\n if (staticContext) {\n method(location);\n return null;\n }\n\n return (\n {\n method(location);\n }}\n onUpdate={(self, prevProps) => {\n const prevLocation = createLocation(prevProps.to);\n if (\n !locationsAreEqual(prevLocation, {\n ...location,\n key: prevLocation.key\n })\n ) {\n method(location);\n }\n }}\n to={to}\n />\n );\n }}\n \n );\n}\n\nif (__DEV__) {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nexport default Redirect;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport hoistStatics from \"hoist-non-react-statics\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * A public higher-order component to access the imperative API\n */\nfunction withRouter(Component) {\n const displayName = `withRouter(${Component.displayName || Component.name})`;\n const C = props => {\n const { wrappedComponentRef, ...remainingProps } = props;\n\n return (\n \n {context => {\n invariant(\n context,\n `You should not use <${displayName} /> outside a `\n );\n return (\n \n );\n }}\n \n );\n };\n\n C.displayName = displayName;\n C.WrappedComponent = Component;\n\n if (__DEV__) {\n C.propTypes = {\n wrappedComponentRef: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.object\n ])\n };\n }\n\n return hoistStatics(C, Component);\n}\n\nexport default withRouter;\n"],"names":["_inheritsLoose","subClass","superClass","prototype","Object","create","constructor","__proto__","defineProperty","exports","value","b","Symbol","for","c","d","e","f","g","h","k","l","m","n","p","q","r","t","v","w","x","a","u","$$typeof","type","y","module","require$$0","getOwnPropertySymbols","hasOwnProperty","propIsEnumerable","propertyIsEnumerable","assign","test1","String","getOwnPropertyNames","test2","i","fromCharCode","map","join","test3","split","forEach","letter","keys","err","shouldUseNative","Function","call","bind","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","props","propName","componentName","location","propFullName","secret","Error","name","getShim","ReactPropTypes","array","isRequired","bool","func","number","object","string","symbol","any","arrayOf","element","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","require$$2","_extends","target","arguments","length","source","key","apply","this","isAbsolute","pathname","charAt","spliceOne","list","index","pop","_typeof","iterator","obj","prefix","invariant","condition","createPath","search","hash","path","createLocation","state","currentLocation","hashIndex","indexOf","substr","searchIndex","parsePath","undefined","decodeURI","URIError","to","from","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","concat","hasTrailingSlash","last","up","part","unshift","result","resolvePathname","locationsAreEqual","valueEqual","Array","isArray","every","item","aType","aValue","valueOf","bValue","aKeys","bKeys","window","document","createElement","clamp","lowerBound","upperBound","Math","min","max","createMemoryHistory","_props","getUserConfirmation","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","_props$keyLength","keyLength","transitionManager","prompt","listeners","setPrompt","nextPrompt","confirmTransitionTo","action","callback","appendListener","fn","isActive","listener","push","filter","notifyListeners","_len","args","_key","createTransitionManager","setState","nextState","history","entries","createKey","random","toString","entry","createHref","go","nextIndex","ok","nextEntries","slice","splice","replace","goBack","goForward","canGo","block","listen","MAX_SIGNED_31_BIT_INT","commonjsGlobal","globalThis","global","React","createContext","defaultValue","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","getUniqueId","Provider","_Component","_this","emitter","handlers","on","handler","off","get","set","newValue","changedBits","createEventEmitter","_proto","getChildContext","_ref","componentWillReceiveProps","nextProps","oldValue","objectIs","render","children","Component","childContextTypes","Consumer","_Component2","_this2","getValue","onUpdate","observedBits","_proto2","componentDidMount","context","componentWillUnmount","onlyChild","contextTypes","historyContext","displayName","createNamedContext","Router","_isMounted","_pendingLocation","staticContext","unlisten","computeRootMatch","url","params","isExact","RouterContext","match","HistoryContext","MemoryRouter","createHistory","Lifecycle","onMount","componentDidUpdate","prevProps","onUnmount","str","options","tokensToFunction","parse","arr","pathToRegexp","tokensToRegExp","PATH_REGEXP","RegExp","res","group","tokens","defaultDelimiter","delimiter","exec","escaped","offset","next","capture","modifier","asterisk","partial","repeat","optional","pattern","escapeString","encodeURIComponentPretty","encodeURI","charCodeAt","toUpperCase","matches","opts","data","encode","pretty","encodeURIComponent","token","segment","TypeError","isarray","JSON","stringify","j","test","attachKeys","re","flags","sensitive","strict","end","route","endsWithDelimiter","groups","regexpToRegexp","parts","arrayToRegexp","stringToRegexp","cache","cacheLimit","cacheCount","generatePath","generator","compile","compilePath","matchPath","reduce","matched","cacheKey","pathCache","regexp","values","memo","Route","computedMatch","component","_objectWithoutPropertiesLoose","excluded","sourceKeys","addLeadingSlash","createURL","staticHandler","noop","StaticRouter","handlePush","navigateTo","handleReplace","handleListen","handleBlock","basename","addBasename","rest","base","stripBasename","Switch","Children","child","isValidElement","cloneElement","REACT_STATICS","contextType","defaultProps","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","ReactIs","isMemo","ForwardRef","getOwnPropertyDescriptor","getPrototypeOf","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","descriptor","useContext","useLocation","Context","message","when","method","self","release","prevLocation","C","wrappedComponentRef","remainingProps","ref","WrappedComponent","hoistStatics"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/react-router/warnAboutDeprecatedCJSRequire.js b/node_modules/react-router/warnAboutDeprecatedCJSRequire.js deleted file mode 100644 index 0521dd3..0000000 --- a/node_modules/react-router/warnAboutDeprecatedCJSRequire.js +++ /dev/null @@ -1,36 +0,0 @@ -/* eslint-disable prefer-arrow-callback, no-empty */ -"use strict"; - -var printWarning = function() {}; - -if (process.env.NODE_ENV !== "production") { - printWarning = function(format, subs) { - var index = 0; - var message = - "Warning: " + - (subs.length > 0 - ? format.replace(/%s/g, function() { - return subs[index++]; - }) - : format); - - if (typeof console !== "undefined") { - console.error(message); - } - - try { - // --- Welcome to debugging React Router --- - // This error was thrown as a convenience so that you can use the - // stack trace to find the callsite that triggered this warning. - throw new Error(message); - } catch (e) {} - }; -} - -module.exports = function(member) { - printWarning( - 'Please use `require("react-router").%s` instead of `require("react-router/%s")`. ' + - "Support for the latter will be removed in the next major release.", - [member, member] - ); -}; diff --git a/node_modules/react-router/withRouter.js b/node_modules/react-router/withRouter.js deleted file mode 100644 index 214676a..0000000 --- a/node_modules/react-router/withRouter.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -require("./warnAboutDeprecatedCJSRequire")("withRouter"); -module.exports = require("./index.js").withRouter; diff --git a/node_modules/regenerator-runtime/LICENSE b/node_modules/regenerator-runtime/LICENSE deleted file mode 100644 index cde61b6..0000000 --- a/node_modules/regenerator-runtime/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -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. diff --git a/node_modules/regenerator-runtime/README.md b/node_modules/regenerator-runtime/README.md deleted file mode 100644 index e8702ba..0000000 --- a/node_modules/regenerator-runtime/README.md +++ /dev/null @@ -1,31 +0,0 @@ -# regenerator-runtime - -Standalone runtime for -[Regenerator](https://github.com/facebook/regenerator)-compiled generator -and `async` functions. - -To import the runtime as a module (recommended), either of the following -import styles will work: -```js -// CommonJS -const regeneratorRuntime = require("regenerator-runtime"); - -// ECMAScript 2015 -import regeneratorRuntime from "regenerator-runtime"; -``` - -To ensure that `regeneratorRuntime` is defined globally, either of the -following styles will work: -```js -// CommonJS -require("regenerator-runtime/runtime"); - -// ECMAScript 2015 -import "regenerator-runtime/runtime.js"; -``` - -To get the absolute file system path of `runtime.js`, evaluate the -following expression: -```js -require("regenerator-runtime/path").path -``` diff --git a/node_modules/regenerator-runtime/package.json b/node_modules/regenerator-runtime/package.json deleted file mode 100644 index 1ad5d83..0000000 --- a/node_modules/regenerator-runtime/package.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "_from": "regenerator-runtime@^0.13.4", - "_id": "regenerator-runtime@0.13.7", - "_inBundle": false, - "_integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", - "_location": "/regenerator-runtime", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "regenerator-runtime@^0.13.4", - "name": "regenerator-runtime", - "escapedName": "regenerator-runtime", - "rawSpec": "^0.13.4", - "saveSpec": null, - "fetchSpec": "^0.13.4" - }, - "_requiredBy": [ - "/@babel/runtime" - ], - "_resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", - "_shasum": "cac2dacc8a1ea675feaabaeb8ae833898ae46f55", - "_spec": "regenerator-runtime@^0.13.4", - "_where": "G:\\_comp_\\odsc\\orig\\AllNotes\\node_modules\\@babel\\runtime", - "author": { - "name": "Ben Newman", - "email": "bn@cs.stanford.edu" - }, - "bundleDependencies": false, - "deprecated": false, - "description": "Runtime for Regenerator-compiled generator and async functions.", - "keywords": [ - "regenerator", - "runtime", - "generator", - "async" - ], - "license": "MIT", - "main": "runtime.js", - "name": "regenerator-runtime", - "repository": { - "type": "git", - "url": "https://github.com/facebook/regenerator/tree/master/packages/regenerator-runtime" - }, - "sideEffects": true, - "version": "0.13.7" -} diff --git a/node_modules/regenerator-runtime/path.js b/node_modules/regenerator-runtime/path.js deleted file mode 100644 index ced878b..0000000 --- a/node_modules/regenerator-runtime/path.js +++ /dev/null @@ -1,11 +0,0 @@ -/** - * Copyright (c) 2014-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -exports.path = require("path").join( - __dirname, - "runtime.js" -); diff --git a/node_modules/regenerator-runtime/runtime.js b/node_modules/regenerator-runtime/runtime.js deleted file mode 100644 index 547b8c6..0000000 --- a/node_modules/regenerator-runtime/runtime.js +++ /dev/null @@ -1,748 +0,0 @@ -/** - * Copyright (c) 2014-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -var runtime = (function (exports) { - "use strict"; - - var Op = Object.prototype; - var hasOwn = Op.hasOwnProperty; - var undefined; // More compressible than void 0. - var $Symbol = typeof Symbol === "function" ? Symbol : {}; - var iteratorSymbol = $Symbol.iterator || "@@iterator"; - var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; - var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; - - function define(obj, key, value) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - return obj[key]; - } - try { - // IE 8 has a broken Object.defineProperty that only works on DOM objects. - define({}, ""); - } catch (err) { - define = function(obj, key, value) { - return obj[key] = value; - }; - } - - function wrap(innerFn, outerFn, self, tryLocsList) { - // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator. - var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; - var generator = Object.create(protoGenerator.prototype); - var context = new Context(tryLocsList || []); - - // The ._invoke method unifies the implementations of the .next, - // .throw, and .return methods. - generator._invoke = makeInvokeMethod(innerFn, self, context); - - return generator; - } - exports.wrap = wrap; - - // Try/catch helper to minimize deoptimizations. Returns a completion - // record like context.tryEntries[i].completion. This interface could - // have been (and was previously) designed to take a closure to be - // invoked without arguments, but in all the cases we care about we - // already have an existing method we want to call, so there's no need - // to create a new function object. We can even get away with assuming - // the method takes exactly one argument, since that happens to be true - // in every case, so we don't have to touch the arguments object. The - // only additional allocation required is the completion record, which - // has a stable shape and so hopefully should be cheap to allocate. - function tryCatch(fn, obj, arg) { - try { - return { type: "normal", arg: fn.call(obj, arg) }; - } catch (err) { - return { type: "throw", arg: err }; - } - } - - var GenStateSuspendedStart = "suspendedStart"; - var GenStateSuspendedYield = "suspendedYield"; - var GenStateExecuting = "executing"; - var GenStateCompleted = "completed"; - - // Returning this object from the innerFn has the same effect as - // breaking out of the dispatch switch statement. - var ContinueSentinel = {}; - - // Dummy constructor functions that we use as the .constructor and - // .constructor.prototype properties for functions that return Generator - // objects. For full spec compliance, you may wish to configure your - // minifier not to mangle the names of these two functions. - function Generator() {} - function GeneratorFunction() {} - function GeneratorFunctionPrototype() {} - - // This is a polyfill for %IteratorPrototype% for environments that - // don't natively support it. - var IteratorPrototype = {}; - IteratorPrototype[iteratorSymbol] = function () { - return this; - }; - - var getProto = Object.getPrototypeOf; - var NativeIteratorPrototype = getProto && getProto(getProto(values([]))); - if (NativeIteratorPrototype && - NativeIteratorPrototype !== Op && - hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { - // This environment has a native %IteratorPrototype%; use it instead - // of the polyfill. - IteratorPrototype = NativeIteratorPrototype; - } - - var Gp = GeneratorFunctionPrototype.prototype = - Generator.prototype = Object.create(IteratorPrototype); - GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype; - GeneratorFunctionPrototype.constructor = GeneratorFunction; - GeneratorFunction.displayName = define( - GeneratorFunctionPrototype, - toStringTagSymbol, - "GeneratorFunction" - ); - - // Helper for defining the .next, .throw, and .return methods of the - // Iterator interface in terms of a single ._invoke method. - function defineIteratorMethods(prototype) { - ["next", "throw", "return"].forEach(function(method) { - define(prototype, method, function(arg) { - return this._invoke(method, arg); - }); - }); - } - - exports.isGeneratorFunction = function(genFun) { - var ctor = typeof genFun === "function" && genFun.constructor; - return ctor - ? ctor === GeneratorFunction || - // For the native GeneratorFunction constructor, the best we can - // do is to check its .name property. - (ctor.displayName || ctor.name) === "GeneratorFunction" - : false; - }; - - exports.mark = function(genFun) { - if (Object.setPrototypeOf) { - Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); - } else { - genFun.__proto__ = GeneratorFunctionPrototype; - define(genFun, toStringTagSymbol, "GeneratorFunction"); - } - genFun.prototype = Object.create(Gp); - return genFun; - }; - - // Within the body of any async function, `await x` is transformed to - // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test - // `hasOwn.call(value, "__await")` to determine if the yielded value is - // meant to be awaited. - exports.awrap = function(arg) { - return { __await: arg }; - }; - - function AsyncIterator(generator, PromiseImpl) { - function invoke(method, arg, resolve, reject) { - var record = tryCatch(generator[method], generator, arg); - if (record.type === "throw") { - reject(record.arg); - } else { - var result = record.arg; - var value = result.value; - if (value && - typeof value === "object" && - hasOwn.call(value, "__await")) { - return PromiseImpl.resolve(value.__await).then(function(value) { - invoke("next", value, resolve, reject); - }, function(err) { - invoke("throw", err, resolve, reject); - }); - } - - return PromiseImpl.resolve(value).then(function(unwrapped) { - // When a yielded Promise is resolved, its final value becomes - // the .value of the Promise<{value,done}> result for the - // current iteration. - result.value = unwrapped; - resolve(result); - }, function(error) { - // If a rejected Promise was yielded, throw the rejection back - // into the async generator function so it can be handled there. - return invoke("throw", error, resolve, reject); - }); - } - } - - var previousPromise; - - function enqueue(method, arg) { - function callInvokeWithMethodAndArg() { - return new PromiseImpl(function(resolve, reject) { - invoke(method, arg, resolve, reject); - }); - } - - return previousPromise = - // If enqueue has been called before, then we want to wait until - // all previous Promises have been resolved before calling invoke, - // so that results are always delivered in the correct order. If - // enqueue has not been called before, then it is important to - // call invoke immediately, without waiting on a callback to fire, - // so that the async generator function has the opportunity to do - // any necessary setup in a predictable way. This predictability - // is why the Promise constructor synchronously invokes its - // executor callback, and why async functions synchronously - // execute code before the first await. Since we implement simple - // async functions in terms of async generators, it is especially - // important to get this right, even though it requires care. - previousPromise ? previousPromise.then( - callInvokeWithMethodAndArg, - // Avoid propagating failures to Promises returned by later - // invocations of the iterator. - callInvokeWithMethodAndArg - ) : callInvokeWithMethodAndArg(); - } - - // Define the unified helper method that is used to implement .next, - // .throw, and .return (see defineIteratorMethods). - this._invoke = enqueue; - } - - defineIteratorMethods(AsyncIterator.prototype); - AsyncIterator.prototype[asyncIteratorSymbol] = function () { - return this; - }; - exports.AsyncIterator = AsyncIterator; - - // Note that simple async functions are implemented on top of - // AsyncIterator objects; they just return a Promise for the value of - // the final result produced by the iterator. - exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) { - if (PromiseImpl === void 0) PromiseImpl = Promise; - - var iter = new AsyncIterator( - wrap(innerFn, outerFn, self, tryLocsList), - PromiseImpl - ); - - return exports.isGeneratorFunction(outerFn) - ? iter // If outerFn is a generator, return the full iterator. - : iter.next().then(function(result) { - return result.done ? result.value : iter.next(); - }); - }; - - function makeInvokeMethod(innerFn, self, context) { - var state = GenStateSuspendedStart; - - return function invoke(method, arg) { - if (state === GenStateExecuting) { - throw new Error("Generator is already running"); - } - - if (state === GenStateCompleted) { - if (method === "throw") { - throw arg; - } - - // Be forgiving, per 25.3.3.3.3 of the spec: - // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume - return doneResult(); - } - - context.method = method; - context.arg = arg; - - while (true) { - var delegate = context.delegate; - if (delegate) { - var delegateResult = maybeInvokeDelegate(delegate, context); - if (delegateResult) { - if (delegateResult === ContinueSentinel) continue; - return delegateResult; - } - } - - if (context.method === "next") { - // Setting context._sent for legacy support of Babel's - // function.sent implementation. - context.sent = context._sent = context.arg; - - } else if (context.method === "throw") { - if (state === GenStateSuspendedStart) { - state = GenStateCompleted; - throw context.arg; - } - - context.dispatchException(context.arg); - - } else if (context.method === "return") { - context.abrupt("return", context.arg); - } - - state = GenStateExecuting; - - var record = tryCatch(innerFn, self, context); - if (record.type === "normal") { - // If an exception is thrown from innerFn, we leave state === - // GenStateExecuting and loop back for another invocation. - state = context.done - ? GenStateCompleted - : GenStateSuspendedYield; - - if (record.arg === ContinueSentinel) { - continue; - } - - return { - value: record.arg, - done: context.done - }; - - } else if (record.type === "throw") { - state = GenStateCompleted; - // Dispatch the exception by looping back around to the - // context.dispatchException(context.arg) call above. - context.method = "throw"; - context.arg = record.arg; - } - } - }; - } - - // Call delegate.iterator[context.method](context.arg) and handle the - // result, either by returning a { value, done } result from the - // delegate iterator, or by modifying context.method and context.arg, - // setting context.delegate to null, and returning the ContinueSentinel. - function maybeInvokeDelegate(delegate, context) { - var method = delegate.iterator[context.method]; - if (method === undefined) { - // A .throw or .return when the delegate iterator has no .throw - // method always terminates the yield* loop. - context.delegate = null; - - if (context.method === "throw") { - // Note: ["return"] must be used for ES3 parsing compatibility. - if (delegate.iterator["return"]) { - // If the delegate iterator has a return method, give it a - // chance to clean up. - context.method = "return"; - context.arg = undefined; - maybeInvokeDelegate(delegate, context); - - if (context.method === "throw") { - // If maybeInvokeDelegate(context) changed context.method from - // "return" to "throw", let that override the TypeError below. - return ContinueSentinel; - } - } - - context.method = "throw"; - context.arg = new TypeError( - "The iterator does not provide a 'throw' method"); - } - - return ContinueSentinel; - } - - var record = tryCatch(method, delegate.iterator, context.arg); - - if (record.type === "throw") { - context.method = "throw"; - context.arg = record.arg; - context.delegate = null; - return ContinueSentinel; - } - - var info = record.arg; - - if (! info) { - context.method = "throw"; - context.arg = new TypeError("iterator result is not an object"); - context.delegate = null; - return ContinueSentinel; - } - - if (info.done) { - // Assign the result of the finished delegate to the temporary - // variable specified by delegate.resultName (see delegateYield). - context[delegate.resultName] = info.value; - - // Resume execution at the desired location (see delegateYield). - context.next = delegate.nextLoc; - - // If context.method was "throw" but the delegate handled the - // exception, let the outer generator proceed normally. If - // context.method was "next", forget context.arg since it has been - // "consumed" by the delegate iterator. If context.method was - // "return", allow the original .return call to continue in the - // outer generator. - if (context.method !== "return") { - context.method = "next"; - context.arg = undefined; - } - - } else { - // Re-yield the result returned by the delegate method. - return info; - } - - // The delegate iterator is finished, so forget it and continue with - // the outer generator. - context.delegate = null; - return ContinueSentinel; - } - - // Define Generator.prototype.{next,throw,return} in terms of the - // unified ._invoke helper method. - defineIteratorMethods(Gp); - - define(Gp, toStringTagSymbol, "Generator"); - - // A Generator should always return itself as the iterator object when the - // @@iterator function is called on it. Some browsers' implementations of the - // iterator prototype chain incorrectly implement this, causing the Generator - // object to not be returned from this call. This ensures that doesn't happen. - // See https://github.com/facebook/regenerator/issues/274 for more details. - Gp[iteratorSymbol] = function() { - return this; - }; - - Gp.toString = function() { - return "[object Generator]"; - }; - - function pushTryEntry(locs) { - var entry = { tryLoc: locs[0] }; - - if (1 in locs) { - entry.catchLoc = locs[1]; - } - - if (2 in locs) { - entry.finallyLoc = locs[2]; - entry.afterLoc = locs[3]; - } - - this.tryEntries.push(entry); - } - - function resetTryEntry(entry) { - var record = entry.completion || {}; - record.type = "normal"; - delete record.arg; - entry.completion = record; - } - - function Context(tryLocsList) { - // The root entry object (effectively a try statement without a catch - // or a finally block) gives us a place to store values thrown from - // locations where there is no enclosing try statement. - this.tryEntries = [{ tryLoc: "root" }]; - tryLocsList.forEach(pushTryEntry, this); - this.reset(true); - } - - exports.keys = function(object) { - var keys = []; - for (var key in object) { - keys.push(key); - } - keys.reverse(); - - // Rather than returning an object with a next method, we keep - // things simple and return the next function itself. - return function next() { - while (keys.length) { - var key = keys.pop(); - if (key in object) { - next.value = key; - next.done = false; - return next; - } - } - - // To avoid creating an additional object, we just hang the .value - // and .done properties off the next function object itself. This - // also ensures that the minifier will not anonymize the function. - next.done = true; - return next; - }; - }; - - function values(iterable) { - if (iterable) { - var iteratorMethod = iterable[iteratorSymbol]; - if (iteratorMethod) { - return iteratorMethod.call(iterable); - } - - if (typeof iterable.next === "function") { - return iterable; - } - - if (!isNaN(iterable.length)) { - var i = -1, next = function next() { - while (++i < iterable.length) { - if (hasOwn.call(iterable, i)) { - next.value = iterable[i]; - next.done = false; - return next; - } - } - - next.value = undefined; - next.done = true; - - return next; - }; - - return next.next = next; - } - } - - // Return an iterator with no values. - return { next: doneResult }; - } - exports.values = values; - - function doneResult() { - return { value: undefined, done: true }; - } - - Context.prototype = { - constructor: Context, - - reset: function(skipTempReset) { - this.prev = 0; - this.next = 0; - // Resetting context._sent for legacy support of Babel's - // function.sent implementation. - this.sent = this._sent = undefined; - this.done = false; - this.delegate = null; - - this.method = "next"; - this.arg = undefined; - - this.tryEntries.forEach(resetTryEntry); - - if (!skipTempReset) { - for (var name in this) { - // Not sure about the optimal order of these conditions: - if (name.charAt(0) === "t" && - hasOwn.call(this, name) && - !isNaN(+name.slice(1))) { - this[name] = undefined; - } - } - } - }, - - stop: function() { - this.done = true; - - var rootEntry = this.tryEntries[0]; - var rootRecord = rootEntry.completion; - if (rootRecord.type === "throw") { - throw rootRecord.arg; - } - - return this.rval; - }, - - dispatchException: function(exception) { - if (this.done) { - throw exception; - } - - var context = this; - function handle(loc, caught) { - record.type = "throw"; - record.arg = exception; - context.next = loc; - - if (caught) { - // If the dispatched exception was caught by a catch block, - // then let that catch block handle the exception normally. - context.method = "next"; - context.arg = undefined; - } - - return !! caught; - } - - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - var record = entry.completion; - - if (entry.tryLoc === "root") { - // Exception thrown outside of any try block that could handle - // it, so set the completion value of the entire function to - // throw the exception. - return handle("end"); - } - - if (entry.tryLoc <= this.prev) { - var hasCatch = hasOwn.call(entry, "catchLoc"); - var hasFinally = hasOwn.call(entry, "finallyLoc"); - - if (hasCatch && hasFinally) { - if (this.prev < entry.catchLoc) { - return handle(entry.catchLoc, true); - } else if (this.prev < entry.finallyLoc) { - return handle(entry.finallyLoc); - } - - } else if (hasCatch) { - if (this.prev < entry.catchLoc) { - return handle(entry.catchLoc, true); - } - - } else if (hasFinally) { - if (this.prev < entry.finallyLoc) { - return handle(entry.finallyLoc); - } - - } else { - throw new Error("try statement without catch or finally"); - } - } - } - }, - - abrupt: function(type, arg) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.tryLoc <= this.prev && - hasOwn.call(entry, "finallyLoc") && - this.prev < entry.finallyLoc) { - var finallyEntry = entry; - break; - } - } - - if (finallyEntry && - (type === "break" || - type === "continue") && - finallyEntry.tryLoc <= arg && - arg <= finallyEntry.finallyLoc) { - // Ignore the finally entry if control is not jumping to a - // location outside the try/catch block. - finallyEntry = null; - } - - var record = finallyEntry ? finallyEntry.completion : {}; - record.type = type; - record.arg = arg; - - if (finallyEntry) { - this.method = "next"; - this.next = finallyEntry.finallyLoc; - return ContinueSentinel; - } - - return this.complete(record); - }, - - complete: function(record, afterLoc) { - if (record.type === "throw") { - throw record.arg; - } - - if (record.type === "break" || - record.type === "continue") { - this.next = record.arg; - } else if (record.type === "return") { - this.rval = this.arg = record.arg; - this.method = "return"; - this.next = "end"; - } else if (record.type === "normal" && afterLoc) { - this.next = afterLoc; - } - - return ContinueSentinel; - }, - - finish: function(finallyLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.finallyLoc === finallyLoc) { - this.complete(entry.completion, entry.afterLoc); - resetTryEntry(entry); - return ContinueSentinel; - } - } - }, - - "catch": function(tryLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.tryLoc === tryLoc) { - var record = entry.completion; - if (record.type === "throw") { - var thrown = record.arg; - resetTryEntry(entry); - } - return thrown; - } - } - - // The context.catch method must only be called with a location - // argument that corresponds to a known catch block. - throw new Error("illegal catch attempt"); - }, - - delegateYield: function(iterable, resultName, nextLoc) { - this.delegate = { - iterator: values(iterable), - resultName: resultName, - nextLoc: nextLoc - }; - - if (this.method === "next") { - // Deliberately forget the last sent value so that we don't - // accidentally pass it on to the delegate. - this.arg = undefined; - } - - return ContinueSentinel; - } - }; - - // Regardless of whether this script is executing as a CommonJS module - // or not, return the runtime object so that we can declare the variable - // regeneratorRuntime in the outer scope, which allows this module to be - // injected easily by `bin/regenerator --include-runtime script.js`. - return exports; - -}( - // If this script is executing as a CommonJS module, use module.exports - // as the regeneratorRuntime namespace. Otherwise create a new empty - // object. Either way, the resulting object will be used to initialize - // the regeneratorRuntime variable at the top of this file. - typeof module === "object" ? module.exports : {} -)); - -try { - regeneratorRuntime = runtime; -} catch (accidentalStrictMode) { - // This module should not be running in strict mode, so the above - // assignment should always work unless something is misconfigured. Just - // in case runtime.js accidentally runs in strict mode, we can escape - // strict mode using a global Function call. This could conceivably fail - // if a Content Security Policy forbids using Function, but in that case - // the proper solution is to fix the accidental strict mode problem. If - // you've misconfigured your bundler to force strict mode and applied a - // CSP to forbid Function, and you're not willing to fix either of those - // problems, please detail your unique predicament in a GitHub issue. - Function("r", "regeneratorRuntime = r")(runtime); -} diff --git a/node_modules/resolve-pathname/LICENSE b/node_modules/resolve-pathname/LICENSE deleted file mode 100644 index 54ff40f..0000000 --- a/node_modules/resolve-pathname/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) Michael Jackson 2016-2018 - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/node_modules/resolve-pathname/README.md b/node_modules/resolve-pathname/README.md deleted file mode 100644 index 72d57f3..0000000 --- a/node_modules/resolve-pathname/README.md +++ /dev/null @@ -1,64 +0,0 @@ -# resolve-pathname [![Travis][build-badge]][build] [![npm package][npm-badge]][npm] - -[build-badge]: https://img.shields.io/travis/mjackson/resolve-pathname/master.svg?style=flat-square -[build]: https://travis-ci.org/mjackson/resolve-pathname -[npm-badge]: https://img.shields.io/npm/v/resolve-pathname.svg?style=flat-square -[npm]: https://www.npmjs.org/package/resolve-pathname - -[resolve-pathname](https://www.npmjs.com/package/resolve-pathname) resolves URL pathnames identical to the way browsers resolve the pathname of an `` value. The goals are: - -- 100% compatibility with browser pathname resolution -- Pure JavaScript implementation (no DOM dependency) - -## Installation - -Using [npm](https://www.npmjs.com/): - - $ npm install --save resolve-pathname - -Then, use as you would anything else: - -```js -// using ES6 modules -import resolvePathname from 'resolve-pathname'; - -// using CommonJS modules -var resolvePathname = require('resolve-pathname'); -``` - -The UMD build is also available on [unpkg](https://unpkg.com): - -```html - -``` - -You can find the library on `window.resolvePathname`. - -## Usage - -```js -import resolvePathname from 'resolve-pathname'; - -// Simply pass the pathname you'd like to resolve. Second -// argument is the path we're coming from, or the current -// pathname. It defaults to "/". -resolvePathname('about', '/company/jobs'); // /company/about -resolvePathname('../jobs', '/company/team/ceo'); // /company/jobs -resolvePathname('about'); // /about -resolvePathname('/about'); // /about - -// Index paths (with a trailing slash) are also supported and -// work the same way as browsers. -resolvePathname('about', '/company/info/'); // /company/info/about - -// In browsers, it's easy to resolve a URL pathname relative to -// the current page. Just use window.location! e.g. if -// window.location.pathname == '/company/team/ceo' then -resolvePathname('cto', window.location.pathname); // /company/team/cto -resolvePathname('../jobs', window.location.pathname); // /company/jobs -``` - -## Prior Work - -- [url.resolve](https://nodejs.org/api/url.html#url_url_resolve_from_to) - node's `url.resolve` implementation for full URLs -- [resolve-url](https://www.npmjs.com/package/resolve-url) - A DOM-dependent implementation of the same algorithm diff --git a/node_modules/resolve-pathname/cjs/resolve-pathname.js b/node_modules/resolve-pathname/cjs/resolve-pathname.js deleted file mode 100644 index 5fda1c0..0000000 --- a/node_modules/resolve-pathname/cjs/resolve-pathname.js +++ /dev/null @@ -1,77 +0,0 @@ -'use strict'; - -function isAbsolute(pathname) { - return pathname.charAt(0) === '/'; -} - -// About 1.5x faster than the two-arg version of Array#splice() -function spliceOne(list, index) { - for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) { - list[i] = list[k]; - } - - list.pop(); -} - -// This implementation is based heavily on node's url.parse -function resolvePathname(to, from) { - if (from === undefined) from = ''; - - var toParts = (to && to.split('/')) || []; - var fromParts = (from && from.split('/')) || []; - - var isToAbs = to && isAbsolute(to); - var isFromAbs = from && isAbsolute(from); - var mustEndAbs = isToAbs || isFromAbs; - - if (to && isAbsolute(to)) { - // to is absolute - fromParts = toParts; - } else if (toParts.length) { - // to is relative, drop the filename - fromParts.pop(); - fromParts = fromParts.concat(toParts); - } - - if (!fromParts.length) return '/'; - - var hasTrailingSlash; - if (fromParts.length) { - var last = fromParts[fromParts.length - 1]; - hasTrailingSlash = last === '.' || last === '..' || last === ''; - } else { - hasTrailingSlash = false; - } - - var up = 0; - for (var i = fromParts.length; i >= 0; i--) { - var part = fromParts[i]; - - if (part === '.') { - spliceOne(fromParts, i); - } else if (part === '..') { - spliceOne(fromParts, i); - up++; - } else if (up) { - spliceOne(fromParts, i); - up--; - } - } - - if (!mustEndAbs) for (; up--; up) fromParts.unshift('..'); - - if ( - mustEndAbs && - fromParts[0] !== '' && - (!fromParts[0] || !isAbsolute(fromParts[0])) - ) - fromParts.unshift(''); - - var result = fromParts.join('/'); - - if (hasTrailingSlash && result.substr(-1) !== '/') result += '/'; - - return result; -} - -module.exports = resolvePathname; diff --git a/node_modules/resolve-pathname/cjs/resolve-pathname.min.js b/node_modules/resolve-pathname/cjs/resolve-pathname.min.js deleted file mode 100644 index 4419ee8..0000000 --- a/node_modules/resolve-pathname/cjs/resolve-pathname.min.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";function isAbsolute(e){return"/"===e.charAt(0)}function spliceOne(e,t){for(var s=t,n=s+1,i=e.length;n= 0; i--) { - var part = fromParts[i]; - - if (part === '.') { - spliceOne(fromParts, i); - } else if (part === '..') { - spliceOne(fromParts, i); - up++; - } else if (up) { - spliceOne(fromParts, i); - up--; - } - } - - if (!mustEndAbs) for (; up--; up) fromParts.unshift('..'); - - if ( - mustEndAbs && - fromParts[0] !== '' && - (!fromParts[0] || !isAbsolute(fromParts[0])) - ) - fromParts.unshift(''); - - var result = fromParts.join('/'); - - if (hasTrailingSlash && result.substr(-1) !== '/') result += '/'; - - return result; -} - -export default resolvePathname; diff --git a/node_modules/resolve-pathname/index.js b/node_modules/resolve-pathname/index.js deleted file mode 100644 index 0c7b6b1..0000000 --- a/node_modules/resolve-pathname/index.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -if (process.env.NODE_ENV === 'production') { - module.exports = require('./cjs/resolve-pathname.min.js'); -} else { - module.exports = require('./cjs/resolve-pathname.js'); -} diff --git a/node_modules/resolve-pathname/package.json b/node_modules/resolve-pathname/package.json deleted file mode 100644 index 0785cf6..0000000 --- a/node_modules/resolve-pathname/package.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "_from": "resolve-pathname@^3.0.0", - "_id": "resolve-pathname@3.0.0", - "_inBundle": false, - "_integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==", - "_location": "/resolve-pathname", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "resolve-pathname@^3.0.0", - "name": "resolve-pathname", - "escapedName": "resolve-pathname", - "rawSpec": "^3.0.0", - "saveSpec": null, - "fetchSpec": "^3.0.0" - }, - "_requiredBy": [ - "/history" - ], - "_resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", - "_shasum": "99d02224d3cf263689becbb393bc560313025dcd", - "_spec": "resolve-pathname@^3.0.0", - "_where": "G:\\_comp_\\odsc\\orig\\AllNotes\\node_modules\\history", - "author": { - "name": "Michael Jackson" - }, - "bugs": { - "url": "https://github.com/mjackson/resolve-pathname/issues" - }, - "bundleDependencies": false, - "deprecated": false, - "description": "Resolve URL pathnames using JavaScript", - "devDependencies": { - "@babel/core": "^7.1.6", - "@babel/preset-env": "^7.1.6", - "babel-core": "^7.0.0-bridge.0", - "babel-eslint": "^10.0.1", - "babel-jest": "^23.6.0", - "eslint": "^5.9.0", - "jest": "^23.6.0", - "rollup": "^0.67.3", - "rollup-plugin-replace": "^2.1.0", - "rollup-plugin-size-snapshot": "^0.7.0", - "rollup-plugin-uglify": "^6.0.0" - }, - "files": [ - "cjs", - "esm", - "index.js", - "umd" - ], - "homepage": "https://github.com/mjackson/resolve-pathname#readme", - "license": "MIT", - "main": "index.js", - "module": "esm/resolve-pathname.js", - "name": "resolve-pathname", - "repository": { - "type": "git", - "url": "git+https://github.com/mjackson/resolve-pathname.git" - }, - "scripts": { - "build": "rollup -c", - "clean": "git clean -fdX .", - "lint": "eslint modules", - "prepublishOnly": "npm run build", - "test": "jest" - }, - "unpkg": "umd/resolve-pathname.js", - "version": "3.0.0" -} diff --git a/node_modules/resolve-pathname/umd/resolve-pathname.js b/node_modules/resolve-pathname/umd/resolve-pathname.js deleted file mode 100644 index 29b9bfc..0000000 --- a/node_modules/resolve-pathname/umd/resolve-pathname.js +++ /dev/null @@ -1,83 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global.resolvePathname = factory()); -}(this, (function () { 'use strict'; - - function isAbsolute(pathname) { - return pathname.charAt(0) === '/'; - } - - // About 1.5x faster than the two-arg version of Array#splice() - function spliceOne(list, index) { - for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) { - list[i] = list[k]; - } - - list.pop(); - } - - // This implementation is based heavily on node's url.parse - function resolvePathname(to, from) { - if (from === undefined) from = ''; - - var toParts = (to && to.split('/')) || []; - var fromParts = (from && from.split('/')) || []; - - var isToAbs = to && isAbsolute(to); - var isFromAbs = from && isAbsolute(from); - var mustEndAbs = isToAbs || isFromAbs; - - if (to && isAbsolute(to)) { - // to is absolute - fromParts = toParts; - } else if (toParts.length) { - // to is relative, drop the filename - fromParts.pop(); - fromParts = fromParts.concat(toParts); - } - - if (!fromParts.length) return '/'; - - var hasTrailingSlash; - if (fromParts.length) { - var last = fromParts[fromParts.length - 1]; - hasTrailingSlash = last === '.' || last === '..' || last === ''; - } else { - hasTrailingSlash = false; - } - - var up = 0; - for (var i = fromParts.length; i >= 0; i--) { - var part = fromParts[i]; - - if (part === '.') { - spliceOne(fromParts, i); - } else if (part === '..') { - spliceOne(fromParts, i); - up++; - } else if (up) { - spliceOne(fromParts, i); - up--; - } - } - - if (!mustEndAbs) for (; up--; up) fromParts.unshift('..'); - - if ( - mustEndAbs && - fromParts[0] !== '' && - (!fromParts[0] || !isAbsolute(fromParts[0])) - ) - fromParts.unshift(''); - - var result = fromParts.join('/'); - - if (hasTrailingSlash && result.substr(-1) !== '/') result += '/'; - - return result; - } - - return resolvePathname; - -}))); diff --git a/node_modules/resolve-pathname/umd/resolve-pathname.min.js b/node_modules/resolve-pathname/umd/resolve-pathname.min.js deleted file mode 100644 index 312b862..0000000 --- a/node_modules/resolve-pathname/umd/resolve-pathname.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.resolvePathname=e()}(this,function(){"use strict";function p(t){return"/"===t.charAt(0)}function d(t,e){for(var n=e,o=n+1,r=t.length;o void` - -- `condition` is required and can be anything -- `message` is an optional string - -## Installation - -```bash -# yarn -yarn add tiny-invariant - -# npm -npm add tiny-invariant --save -``` - -## Dropping your `message` for kb savings! - -Big idea: you will want your compiler to convert this code: - -```js -invariant(condition, 'My cool message that takes up a lot of kbs'); -``` - -Into this: - -```js -if (!condition) { - if ('production' !== process.env.NODE_ENV) { - invariant(false, 'My cool message that takes up a lot of kbs'); - } else { - invariant(false); - } -} -``` - -- **Babel**: recommend [`babel-plugin-dev-expression`](https://www.npmjs.com/package/babel-plugin-dev-expression) -- **TypeScript**: recommend [`tsdx`](https://github.com/jaredpalmer/tsdx#invariant) (or you can run `babel-plugin-dev-expression` after TypeScript compiling) - -Your bundler can then drop the code in the `"production" !== process.env.NODE_ENV` block for your production builds to end up with this: - -```js -if (!condition) { - invariant(false); -} -``` - -- rollup: use [rollup-plugin-replace](https://github.com/rollup/rollup-plugin-replace) and set `NODE_ENV` to `production` and then `rollup` will treeshake out the unused code -- Webpack: [instructions](https://webpack.js.org/guides/production/#specify-the-mode) - -## Builds - -- We have a `es` (EcmaScript module) build (because you _know_ you want to deduplicate this super heavy library) -- We have a `cjs` (CommonJS) build -- We have a `umd` (Universal module definition) build in case you needed it - -We expect `process.env.NODE_ENV` to be available at module compilation. We cache this value - -## That's it! - -🤘 diff --git a/node_modules/tiny-invariant/dist/tiny-invariant.cjs.js b/node_modules/tiny-invariant/dist/tiny-invariant.cjs.js deleted file mode 100644 index bb046e7..0000000 --- a/node_modules/tiny-invariant/dist/tiny-invariant.cjs.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, "__esModule", { value: true }); -var isProduction = process.env.NODE_ENV === 'production'; -var prefix = 'Invariant failed'; -function invariant(condition, message) { - if (condition) { - return; - } - if (isProduction) { - throw new Error(prefix); - } - throw new Error(prefix + ": " + (message || '')); -} -exports.default = invariant; diff --git a/node_modules/tiny-invariant/dist/tiny-invariant.d.ts b/node_modules/tiny-invariant/dist/tiny-invariant.d.ts deleted file mode 100644 index 50e9e67..0000000 --- a/node_modules/tiny-invariant/dist/tiny-invariant.d.ts +++ /dev/null @@ -1 +0,0 @@ -export default function invariant(condition: any, message?: string): asserts condition; diff --git a/node_modules/tiny-invariant/dist/tiny-invariant.esm.js b/node_modules/tiny-invariant/dist/tiny-invariant.esm.js deleted file mode 100644 index 2f97700..0000000 --- a/node_modules/tiny-invariant/dist/tiny-invariant.esm.js +++ /dev/null @@ -1,13 +0,0 @@ -var isProduction = process.env.NODE_ENV === 'production'; -var prefix = 'Invariant failed'; -function invariant(condition, message) { - if (condition) { - return; - } - if (isProduction) { - throw new Error(prefix); - } - throw new Error(prefix + ": " + (message || '')); -} - -export default invariant; diff --git a/node_modules/tiny-invariant/dist/tiny-invariant.js b/node_modules/tiny-invariant/dist/tiny-invariant.js deleted file mode 100644 index 7c1108c..0000000 --- a/node_modules/tiny-invariant/dist/tiny-invariant.js +++ /dev/null @@ -1,20 +0,0 @@ -(function (factory) { - typeof define === 'function' && define.amd ? define(factory) : - factory(); -}((function () { 'use strict'; - - Object.defineProperty(exports, "__esModule", { value: true }); - var isProduction = process.env.NODE_ENV === 'production'; - var prefix = 'Invariant failed'; - function invariant(condition, message) { - if (condition) { - return; - } - if (isProduction) { - throw new Error(prefix); - } - throw new Error(prefix + ": " + (message || '')); - } - exports.default = invariant; - -}))); diff --git a/node_modules/tiny-invariant/dist/tiny-invariant.min.js b/node_modules/tiny-invariant/dist/tiny-invariant.min.js deleted file mode 100644 index 10d5976..0000000 --- a/node_modules/tiny-invariant/dist/tiny-invariant.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e){"function"==typeof define&&define.amd?define(e):e()}((function(){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});exports.default=function(e,n){if(!e)throw new Error("Invariant failed")}})); diff --git a/node_modules/tiny-invariant/package.json b/node_modules/tiny-invariant/package.json deleted file mode 100644 index 9f1190d..0000000 --- a/node_modules/tiny-invariant/package.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "_from": "tiny-invariant@^1.0.2", - "_id": "tiny-invariant@1.1.0", - "_inBundle": false, - "_integrity": "sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw==", - "_location": "/tiny-invariant", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "tiny-invariant@^1.0.2", - "name": "tiny-invariant", - "escapedName": "tiny-invariant", - "rawSpec": "^1.0.2", - "saveSpec": null, - "fetchSpec": "^1.0.2" - }, - "_requiredBy": [ - "/history", - "/react-router", - "/react-router-dom" - ], - "_resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.1.0.tgz", - "_shasum": "634c5f8efdc27714b7f386c35e6760991d230875", - "_spec": "tiny-invariant@^1.0.2", - "_where": "G:\\_comp_\\odsc\\orig\\AllNotes\\node_modules\\react-router-dom", - "author": { - "name": "Alex Reardon", - "email": "alexreardon@gmail.com" - }, - "bugs": { - "url": "https://github.com/alexreardon/tiny-invariant/issues" - }, - "bundleDependencies": false, - "deprecated": false, - "description": "A tiny invariant function", - "devDependencies": { - "@rollup/plugin-replace": "^2.3.0", - "@rollup/plugin-typescript": "^3.0.0", - "@types/jest": "^25.1.0", - "jest": "^25.1.0", - "prettier": "^1.19.1", - "rimraf": "^3.0.1", - "rollup": "^1.30.1", - "rollup-plugin-terser": "^5.2.0", - "ts-expect": "^1.1.0", - "ts-jest": "^25.0.0", - "tslib": "^1.10.0", - "typescript": "^3.7.5" - }, - "files": [ - "/dist", - "/src" - ], - "homepage": "https://github.com/alexreardon/tiny-invariant#readme", - "keywords": [ - "invariant", - "error" - ], - "license": "MIT", - "main": "dist/tiny-invariant.cjs.js", - "module": "dist/tiny-invariant.esm.js", - "name": "tiny-invariant", - "repository": { - "type": "git", - "url": "git+https://github.com/alexreardon/tiny-invariant.git" - }, - "scripts": { - "build": "yarn build:clean && yarn build:dist && yarn build:typescript", - "build:clean": "rimraf dist", - "build:dist": "yarn rollup --config rollup.config.js", - "build:flow": "cp src/tiny-invariant.js.flow dist/tiny-invariant.cjs.js.flow", - "build:typescript": "tsc ./src/tiny-invariant.ts --emitDeclarationOnly --declaration --outDir ./dist", - "lint": "yarn prettier:check", - "prepublishOnly": "yarn build", - "prettier:check": "yarn prettier --write src/** test/**", - "prettier:write": "yarn prettier --debug-check src/** test/**", - "test": "yarn jest", - "typecheck": "yarn tsc --noEmit src/*.ts test/*.ts", - "validate": "yarn lint && yarn typecheck" - }, - "sideEffects": false, - "types": "dist/tiny-invariant.d.ts", - "version": "1.1.0" -} diff --git a/node_modules/tiny-invariant/src/tiny-invariant.flow.js b/node_modules/tiny-invariant/src/tiny-invariant.flow.js deleted file mode 100644 index 65fd117..0000000 --- a/node_modules/tiny-invariant/src/tiny-invariant.flow.js +++ /dev/null @@ -1,12 +0,0 @@ -// @flow -// This file is not actually executed -// It is just used by flow for typing - -const prefix: string = 'Invariant failed'; - -export default function invariant(condition: mixed, message?: string) { - if (condition) { - return; - } - throw new Error(`${prefix}: ${message || ''}`); -} diff --git a/node_modules/tiny-invariant/src/tiny-invariant.ts b/node_modules/tiny-invariant/src/tiny-invariant.ts deleted file mode 100644 index ac3f092..0000000 --- a/node_modules/tiny-invariant/src/tiny-invariant.ts +++ /dev/null @@ -1,25 +0,0 @@ -// @flow -const isProduction: boolean = process.env.NODE_ENV === 'production'; -const prefix: string = 'Invariant failed'; - -// Throw an error if the condition fails -// Strip out error messages for production -// > Not providing an inline default argument for message as the result is smaller -export default function invariant( - condition: any, - message?: string, -): asserts condition { - if (condition) { - return; - } - // Condition not passed - - // In production we strip the message but still throw - if (isProduction) { - throw new Error(prefix); - } - - // When not in production we allow the message to pass through - // *This block will be removed in production builds* - throw new Error(`${prefix}: ${message || ''}`); -} diff --git a/node_modules/tiny-warning/LICENSE b/node_modules/tiny-warning/LICENSE deleted file mode 100644 index f3dcb58..0000000 --- a/node_modules/tiny-warning/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -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. \ No newline at end of file diff --git a/node_modules/tiny-warning/README.md b/node_modules/tiny-warning/README.md deleted file mode 100644 index da4793b..0000000 --- a/node_modules/tiny-warning/README.md +++ /dev/null @@ -1,68 +0,0 @@ -# tiny-warning 🔬⚠️ - -[![Build Status](https://travis-ci.org/alexreardon/tiny-warning.svg?branch=master)](https://travis-ci.org/alexreardon/tiny-warning) -[![npm](https://img.shields.io/npm/v/tiny-warning.svg)](https://www.npmjs.com/package/tiny-warning) [![Downloads per month](https://img.shields.io/npm/dm/tiny-warning.svg)](https://www.npmjs.com/package/tiny-warning) [![dependencies](https://david-dm.org/alexreardon/tiny-warning.svg)](https://david-dm.org/alexreardon/tiny-warning) -[![min](https://img.shields.io/bundlephobia/min/tiny-warning.svg)](https://www.npmjs.com/package/tiny-warning) -[![minzip](https://img.shields.io/bundlephobia/minzip/tiny-warning.svg)](https://www.npmjs.com/package/tiny-warning) - -A tiny [`warning`](https://www.npmjs.com/package/warning) alternative. - -```js -import warning from 'tiny-warning'; - -warning(truthyValue, 'This should not log a warning'); - -warning(falsyValue, 'This should log a warning'); -// console.warn('Warning: This should log a warning'); -``` - -## API: `(condition: mixed, message: string) => void` - -- `condition` is required and can be anything -- `message` is an required string that will be passed onto `console.warn` - -## Why `tiny-warning`? - -The [`library: warning`](https://www.npmjs.com/package/warning) supports passing in arguments to the `warning` function in a sprintf style `(condition, format, a, b, c, d, e, f)`. It has internal logic to execute the sprintf substitutions. `tiny-warning` has dropped all of the sprintf logic. `tiny-warning` allows you to pass a single string message. With [template literals](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals) there is really no need for a custom message formatter to be built into the library. If you need a multi part message you can just do this: `warning(condition, 'Hello, ${name} - how are you today?')` - -## Dropping your `warning` for kb savings! - -We recommend using [`babel-plugin-dev-expression`](https://www.npmjs.com/package/babel-plugin-dev-expression) to remove `warning` calls from your production build. This saves you kb's as well as avoids logging warnings to the console for production. - -What it does it turn your code that looks like this: - -```js -warning(condition, 'My cool message that takes up a lot of kbs'); -``` - -Into this - -```js -if ('production' !== process.env.NODE_ENV) { - warning(condition, 'My cool message that takes up a lot of kbs'); -} -``` - -Your bundler can then drop the code in the `"production" !== process.env.NODE_ENV` block for your production builds - -Final result: - -```js -// nothing to see here! 👍 -``` - -> For `rollup` use [rollup-plugin-replace](https://github.com/rollup/rollup-plugin-replace) and set `NODE_ENV` to `production` and then `rollup` will treeshake out the unused code -> -> [`Webpack` instructions](https://webpack.js.org/guides/production/#specify-the-mode) - -## Builds - -- We have a `es` (EcmaScript module) build (because you _know_ you want to deduplicate this super heavy library) -- We have a `cjs` (CommonJS) build -- We have a `umd` (Universal module definition) build in case you needed it - -We expect `process.env.NODE_ENV` to be available at module compilation. We cache this value - -## That's it! - -🤘 diff --git a/node_modules/tiny-warning/dist/tiny-warning.cjs.js b/node_modules/tiny-warning/dist/tiny-warning.cjs.js deleted file mode 100644 index 221fdf5..0000000 --- a/node_modules/tiny-warning/dist/tiny-warning.cjs.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var isProduction = process.env.NODE_ENV === 'production'; -function warning(condition, message) { - if (!isProduction) { - if (condition) { - return; - } - - var text = "Warning: " + message; - - if (typeof console !== 'undefined') { - console.warn(text); - } - - try { - throw Error(text); - } catch (x) {} - } -} - -module.exports = warning; diff --git a/node_modules/tiny-warning/dist/tiny-warning.cjs.js.flow b/node_modules/tiny-warning/dist/tiny-warning.cjs.js.flow deleted file mode 100644 index 6a6528b..0000000 --- a/node_modules/tiny-warning/dist/tiny-warning.cjs.js.flow +++ /dev/null @@ -1,3 +0,0 @@ -// @flow - -export * from '../src'; diff --git a/node_modules/tiny-warning/dist/tiny-warning.esm.js b/node_modules/tiny-warning/dist/tiny-warning.esm.js deleted file mode 100644 index 2bf1f8c..0000000 --- a/node_modules/tiny-warning/dist/tiny-warning.esm.js +++ /dev/null @@ -1,20 +0,0 @@ -var isProduction = process.env.NODE_ENV === 'production'; -function warning(condition, message) { - if (!isProduction) { - if (condition) { - return; - } - - var text = "Warning: " + message; - - if (typeof console !== 'undefined') { - console.warn(text); - } - - try { - throw Error(text); - } catch (x) {} - } -} - -export default warning; diff --git a/node_modules/tiny-warning/dist/tiny-warning.js b/node_modules/tiny-warning/dist/tiny-warning.js deleted file mode 100644 index 06a55fd..0000000 --- a/node_modules/tiny-warning/dist/tiny-warning.js +++ /dev/null @@ -1,27 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, global.warning = factory()); -}(this, function () { 'use strict'; - - function warning(condition, message) { - { - if (condition) { - return; - } - - var text = "Warning: " + message; - - if (typeof console !== 'undefined') { - console.warn(text); - } - - try { - throw Error(text); - } catch (x) {} - } - } - - return warning; - -})); diff --git a/node_modules/tiny-warning/dist/tiny-warning.min.js b/node_modules/tiny-warning/dist/tiny-warning.min.js deleted file mode 100644 index a03be32..0000000 --- a/node_modules/tiny-warning/dist/tiny-warning.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(e=e||self).warning=n()}(this,function(){"use strict";return function(e,n){}}); diff --git a/node_modules/tiny-warning/package.json b/node_modules/tiny-warning/package.json deleted file mode 100644 index ffb6075..0000000 --- a/node_modules/tiny-warning/package.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "_from": "tiny-warning@^1.0.0", - "_id": "tiny-warning@1.0.3", - "_inBundle": false, - "_integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==", - "_location": "/tiny-warning", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "tiny-warning@^1.0.0", - "name": "tiny-warning", - "escapedName": "tiny-warning", - "rawSpec": "^1.0.0", - "saveSpec": null, - "fetchSpec": "^1.0.0" - }, - "_requiredBy": [ - "/history", - "/mini-create-react-context", - "/react-router", - "/react-router-dom" - ], - "_resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", - "_shasum": "94a30db453df4c643d0fd566060d60a875d84754", - "_spec": "tiny-warning@^1.0.0", - "_where": "G:\\_comp_\\odsc\\orig\\AllNotes\\node_modules\\react-router-dom", - "author": { - "name": "Alex Reardon", - "email": "alexreardon@gmail.com" - }, - "bugs": { - "url": "https://github.com/alexreardon/tiny-warning/issues" - }, - "bundleDependencies": false, - "deprecated": false, - "description": "A tiny warning function", - "devDependencies": { - "@babel/core": "^7.5.0", - "@babel/preset-env": "^7.5.0", - "@babel/preset-flow": "^7.0.0", - "babel-core": "7.0.0-bridge.0", - "babel-jest": "^24.8.0", - "flow-bin": "0.102.0", - "jest": "^24.8.0", - "prettier": "1.18.2", - "regenerator-runtime": "^0.13.2", - "rimraf": "^2.6.3", - "rollup": "^1.16.6", - "rollup-plugin-babel": "^4.3.3", - "rollup-plugin-replace": "^2.2.0", - "rollup-plugin-uglify": "^6.0.2" - }, - "files": [ - "/dist", - "/src" - ], - "homepage": "https://github.com/alexreardon/tiny-warning#readme", - "keywords": [ - "warning", - "warn" - ], - "license": "MIT", - "main": "dist/tiny-warning.cjs.js", - "module": "dist/tiny-warning.esm.js", - "name": "tiny-warning", - "repository": { - "type": "git", - "url": "git+https://github.com/alexreardon/tiny-warning.git" - }, - "scripts": { - "build": "yarn build:clean && yarn build:dist && yarn build:flow", - "build:clean": "rimraf dist", - "build:dist": "yarn rollup --config rollup.config.js", - "build:flow": "echo \"// @flow\n\nexport * from '../src';\" > dist/tiny-warning.cjs.js.flow", - "lint": "yarn prettier --debug-check src/** test/**", - "prepublishOnly": "yarn build", - "test": "yarn jest", - "typecheck": "yarn flow", - "validate": "yarn lint && yarn flow" - }, - "sideEffects": false, - "types": "src/index.d.ts", - "version": "1.0.3" -} diff --git a/node_modules/tiny-warning/src/index.d.ts b/node_modules/tiny-warning/src/index.d.ts deleted file mode 100644 index 8897cbc..0000000 --- a/node_modules/tiny-warning/src/index.d.ts +++ /dev/null @@ -1 +0,0 @@ -export default function warning(condition: any, message: string): void diff --git a/node_modules/tiny-warning/src/index.js b/node_modules/tiny-warning/src/index.js deleted file mode 100644 index 29a5bf1..0000000 --- a/node_modules/tiny-warning/src/index.js +++ /dev/null @@ -1,30 +0,0 @@ -// @flow -const isProduction: boolean = process.env.NODE_ENV === 'production'; - -export default function warning(condition: mixed, message: string): void { - // don't do anything in production - // wrapping in production check for better dead code elimination - if (!isProduction) { - // condition passed: do not log - if (condition) { - return; - } - - // Condition not passed - const text: string = `Warning: ${message}`; - - // check console for IE9 support which provides console - // only with open devtools - if (typeof console !== 'undefined') { - console.warn(text); - } - - // Throwing an error and catching it immediately - // to improve debugging - // A consumer can use 'pause on caught exceptions' - // https://github.com/facebook/react/issues/4216 - try { - throw Error(text); - } catch (x) {} - } -} diff --git a/node_modules/value-equal/LICENSE b/node_modules/value-equal/LICENSE deleted file mode 100644 index 54ff40f..0000000 --- a/node_modules/value-equal/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) Michael Jackson 2016-2018 - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/node_modules/value-equal/README.md b/node_modules/value-equal/README.md deleted file mode 100644 index 240d090..0000000 --- a/node_modules/value-equal/README.md +++ /dev/null @@ -1,54 +0,0 @@ -# value-equal [![Travis][build-badge]][build] [![npm package][npm-badge]][npm] - -[build-badge]: https://img.shields.io/travis/mjackson/value-equal/master.svg?style=flat-square -[build]: https://travis-ci.org/mjackson/value-equal -[npm-badge]: https://img.shields.io/npm/v/value-equal.svg?style=flat-square -[npm]: https://www.npmjs.org/package/value-equal - -[`value-equal`](https://www.npmjs.com/package/value-equal) determines if two JavaScript values are equal using [`Object.prototype.valueOf`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/valueOf). - -In many instances when I'm checking for object equality, what I really want to know is if their **values** are equal. This is good for: - -- Stuff you keep in `localStorage` -- `window.history.state` values -- Query strings - -## Installation - -Using [npm](https://www.npmjs.com/): - - $ npm install --save value-equal - -Then with a module bundler like [webpack](https://webpack.github.io/), use as you would anything else: - -```js -// using ES6 modules -import valueEqual from 'value-equal'; - -// using CommonJS modules -var valueEqual = require('value-equal'); -``` - -The UMD build is also available on [unpkg](https://unpkg.com): - -```html - -``` - -You can find the library on `window.valueEqual`. - -## Usage - -```js -valueEqual(1, 1); // true -valueEqual('asdf', 'asdf'); // true -valueEqual('asdf', new String('asdf')); // true -valueEqual(true, true); // true -valueEqual(true, false); // false -valueEqual({ a: 'a' }, { a: 'a' }); // true -valueEqual({ a: 'a' }, { a: 'b' }); // false -valueEqual([1, 2, 3], [1, 2, 3]); // true -valueEqual([1, 2, 3], [2, 3, 4]); // false -``` - -That's it. Enjoy! diff --git a/node_modules/value-equal/cjs/value-equal.js b/node_modules/value-equal/cjs/value-equal.js deleted file mode 100644 index 906d3f0..0000000 --- a/node_modules/value-equal/cjs/value-equal.js +++ /dev/null @@ -1,38 +0,0 @@ -'use strict'; - -function valueOf(obj) { - return obj.valueOf ? obj.valueOf() : Object.prototype.valueOf.call(obj); -} - -function valueEqual(a, b) { - // Test for strict equality first. - if (a === b) return true; - - // Otherwise, if either of them == null they are not equal. - if (a == null || b == null) return false; - - if (Array.isArray(a)) { - return ( - Array.isArray(b) && - a.length === b.length && - a.every(function(item, index) { - return valueEqual(item, b[index]); - }) - ); - } - - if (typeof a === 'object' || typeof b === 'object') { - var aValue = valueOf(a); - var bValue = valueOf(b); - - if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue); - - return Object.keys(Object.assign({}, a, b)).every(function(key) { - return valueEqual(a[key], b[key]); - }); - } - - return false; -} - -module.exports = valueEqual; diff --git a/node_modules/value-equal/cjs/value-equal.min.js b/node_modules/value-equal/cjs/value-equal.min.js deleted file mode 100644 index d662942..0000000 --- a/node_modules/value-equal/cjs/value-equal.min.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";function valueOf(e){return e.valueOf?e.valueOf():Object.prototype.valueOf.call(e)}function valueEqual(u,r){if(u===r)return!0;if(null==u||null==r)return!1;if(Array.isArray(u))return Array.isArray(r)&&u.length===r.length&&u.every(function(e,u){return valueEqual(e,r[u])});if("object"!=typeof u&&"object"!=typeof r)return!1;var e=valueOf(u),t=valueOf(r);return e!==u||t!==r?valueEqual(e,t):Object.keys(Object.assign({},u,r)).every(function(e){return valueEqual(u[e],r[e])})}module.exports=valueEqual; diff --git a/node_modules/value-equal/esm/value-equal.js b/node_modules/value-equal/esm/value-equal.js deleted file mode 100644 index 94d02c1..0000000 --- a/node_modules/value-equal/esm/value-equal.js +++ /dev/null @@ -1,36 +0,0 @@ -function valueOf(obj) { - return obj.valueOf ? obj.valueOf() : Object.prototype.valueOf.call(obj); -} - -function valueEqual(a, b) { - // Test for strict equality first. - if (a === b) return true; - - // Otherwise, if either of them == null they are not equal. - if (a == null || b == null) return false; - - if (Array.isArray(a)) { - return ( - Array.isArray(b) && - a.length === b.length && - a.every(function(item, index) { - return valueEqual(item, b[index]); - }) - ); - } - - if (typeof a === 'object' || typeof b === 'object') { - var aValue = valueOf(a); - var bValue = valueOf(b); - - if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue); - - return Object.keys(Object.assign({}, a, b)).every(function(key) { - return valueEqual(a[key], b[key]); - }); - } - - return false; -} - -export default valueEqual; diff --git a/node_modules/value-equal/index.js b/node_modules/value-equal/index.js deleted file mode 100644 index 3a5353e..0000000 --- a/node_modules/value-equal/index.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -if (process.env.NODE_ENV === 'production') { - module.exports = require('./cjs/value-equal.min.js'); -} else { - module.exports = require('./cjs/value-equal.js'); -} diff --git a/node_modules/value-equal/package.json b/node_modules/value-equal/package.json deleted file mode 100644 index 2a8aaee..0000000 --- a/node_modules/value-equal/package.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "_from": "value-equal@^1.0.1", - "_id": "value-equal@1.0.1", - "_inBundle": false, - "_integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==", - "_location": "/value-equal", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "value-equal@^1.0.1", - "name": "value-equal", - "escapedName": "value-equal", - "rawSpec": "^1.0.1", - "saveSpec": null, - "fetchSpec": "^1.0.1" - }, - "_requiredBy": [ - "/history" - ], - "_resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", - "_shasum": "1e0b794c734c5c0cade179c437d356d931a34d6c", - "_spec": "value-equal@^1.0.1", - "_where": "G:\\_comp_\\odsc\\orig\\AllNotes\\node_modules\\history", - "author": { - "name": "Michael Jackson" - }, - "bugs": { - "url": "https://github.com/mjackson/value-equal/issues" - }, - "bundleDependencies": false, - "deprecated": false, - "description": "Are these two JavaScript values equal?", - "devDependencies": { - "@babel/core": "^7.1.6", - "@babel/preset-env": "^7.1.6", - "babel-core": "^7.0.0-bridge.0", - "babel-eslint": "^10.0.1", - "babel-jest": "^23.6.0", - "eslint": "^5.9.0", - "jest": "^23.6.0", - "rollup": "^0.67.3", - "rollup-plugin-replace": "^2.1.0", - "rollup-plugin-size-snapshot": "^0.7.0", - "rollup-plugin-uglify": "^6.0.0" - }, - "files": [ - "cjs", - "esm", - "index.js", - "umd" - ], - "homepage": "https://github.com/mjackson/value-equal#readme", - "license": "MIT", - "main": "index.js", - "module": "esm/value-equal.js", - "name": "value-equal", - "repository": { - "type": "git", - "url": "git+https://github.com/mjackson/value-equal.git" - }, - "scripts": { - "build": "rollup -c", - "clean": "git clean -fdX .", - "lint": "eslint modules", - "prepublishOnly": "npm run build", - "test": "jest" - }, - "unpkg": "umd/value-equal.js", - "version": "1.0.1" -} diff --git a/node_modules/value-equal/umd/value-equal.js b/node_modules/value-equal/umd/value-equal.js deleted file mode 100644 index 2d6ab7e..0000000 --- a/node_modules/value-equal/umd/value-equal.js +++ /dev/null @@ -1,44 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global.valueEqual = factory()); -}(this, (function () { 'use strict'; - - function valueOf(obj) { - return obj.valueOf ? obj.valueOf() : Object.prototype.valueOf.call(obj); - } - - function valueEqual(a, b) { - // Test for strict equality first. - if (a === b) return true; - - // Otherwise, if either of them == null they are not equal. - if (a == null || b == null) return false; - - if (Array.isArray(a)) { - return ( - Array.isArray(b) && - a.length === b.length && - a.every(function(item, index) { - return valueEqual(item, b[index]); - }) - ); - } - - if (typeof a === 'object' || typeof b === 'object') { - var aValue = valueOf(a); - var bValue = valueOf(b); - - if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue); - - return Object.keys(Object.assign({}, a, b)).every(function(key) { - return valueEqual(a[key], b[key]); - }); - } - - return false; - } - - return valueEqual; - -}))); diff --git a/node_modules/value-equal/umd/value-equal.min.js b/node_modules/value-equal/umd/value-equal.min.js deleted file mode 100644 index 5cd23e0..0000000 --- a/node_modules/value-equal/umd/value-equal.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.valueEqual=t()}(this,function(){"use strict";function f(e){return e.valueOf?e.valueOf():Object.prototype.valueOf.call(e)}return function n(t,r){if(t===r)return!0;if(null==t||null==r)return!1;if(Array.isArray(t))return Array.isArray(r)&&t.length===r.length&&t.every(function(e,t){return n(e,r[t])});if("object"!=typeof t&&"object"!=typeof r)return!1;var e=f(t),u=f(r);return e!==t||u!==r?n(e,u):Object.keys(Object.assign({},t,r)).every(function(e){return n(t[e],r[e])})}}); From 1218b2f06f88bee3963b9b3a8c9802c5ff44a03e Mon Sep 17 00:00:00 2001 From: copyNinja1219 Date: Sun, 21 Mar 2021 07:31:37 +0530 Subject: [PATCH 08/10] added delete route --- server/Routes/Delete/Delete.js | 26 ++++++++++++++++++++++++++ server/index.js | 29 +++++++++++++++++------------ 2 files changed, 43 insertions(+), 12 deletions(-) create mode 100644 server/Routes/Delete/Delete.js diff --git a/server/Routes/Delete/Delete.js b/server/Routes/Delete/Delete.js new file mode 100644 index 0000000..467d490 --- /dev/null +++ b/server/Routes/Delete/Delete.js @@ -0,0 +1,26 @@ +const express = require('express'); +const app = express(); + +// assuming model to be of name - User +const User = mongoose.model('User'); + +module.exports.DeleteRoute('/', (req, res) => { + const { body } = req; + const { name, email, _id } = body; + + if (!name || !email || !_id) + return res.send({ + message: ' Error ! Product not found ', + }); + + User.findByIdAndRemove(_id, (err, docs) => { + if (err) { + return res.send({ + message: ' Sorry ! The process could not be completed', + }); + } else + return res.send({ + message: ' User sucessfully deleted !', + }); + }); +}); diff --git a/server/index.js b/server/index.js index d09c534..37f0c91 100644 --- a/server/index.js +++ b/server/index.js @@ -1,18 +1,23 @@ -const express = require('express') +const express = require('express'); const app = express(); const port = 8000; +const router = express.Router(); + +// Delete Route +import DeleteRoute from './Routes/Delete/Delete'; var project = [ - { - "name":"All Notes" - } - ] - + { + name: 'All Notes', + }, +]; + +router.get('/delete/user', DeleteRoute); app.get('/', (req, res) => { - res.json(project) - }); - - app.listen(port, () => { - console.log(`Application listening on port ${port}!`) - }); + res.json(project); +}); + +app.listen(port, () => { + console.log(`Application listening on port ${port}!`); +}); From 217709f8365c2817b21cd55006a158a97ff0f98a Mon Sep 17 00:00:00 2001 From: copyNinja1219 Date: Sun, 21 Mar 2021 07:37:19 +0530 Subject: [PATCH 09/10] added delete route --- server/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/index.js b/server/index.js index 37f0c91..55aad8e 100644 --- a/server/index.js +++ b/server/index.js @@ -4,7 +4,7 @@ const port = 8000; const router = express.Router(); // Delete Route -import DeleteRoute from './Routes/Delete/Delete'; +import Delete from './Routes/Delete/Delete'; var project = [ { @@ -12,7 +12,7 @@ var project = [ }, ]; -router.get('/delete/user', DeleteRoute); +router.delete('/delete/user', Delete.DeleteRoute); app.get('/', (req, res) => { res.json(project); From ab3a2244af7cfbcb88b792ce8ef3dd0702712a3b Mon Sep 17 00:00:00 2001 From: copyNinja1219 Date: Sun, 21 Mar 2021 07:39:20 +0530 Subject: [PATCH 10/10] added delete route --- server/Routes/Delete/Delete.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/Routes/Delete/Delete.js b/server/Routes/Delete/Delete.js index 467d490..a161b4c 100644 --- a/server/Routes/Delete/Delete.js +++ b/server/Routes/Delete/Delete.js @@ -4,7 +4,7 @@ const app = express(); // assuming model to be of name - User const User = mongoose.model('User'); -module.exports.DeleteRoute('/', (req, res) => { +module.exports.DeleteRoute = (req, res) => { const { body } = req; const { name, email, _id } = body; @@ -23,4 +23,4 @@ module.exports.DeleteRoute('/', (req, res) => { message: ' User sucessfully deleted !', }); }); -}); +};

&F9jbm}SnH(g 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≫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∨g08Y7-UOQ>#ONi3^U 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 Date: Sat, 20 Mar 2021 17:42:52 +0530 Subject: [PATCH 03/10] added files to .gitignore --- client/.eslintcache | 1 - 1 file changed, 1 deletion(-) delete mode 100644 client/.eslintcache diff --git a/client/.eslintcache b/client/.eslintcache deleted file mode 100644 index 39c1ed4..0000000 --- a/client/.eslintcache +++ /dev/null @@ -1 +0,0 @@ -[{"G:\\_comp_\\odsc\\orig\\AllNotes\\client\\src\\index.js":"1","G:\\_comp_\\odsc\\orig\\AllNotes\\client\\src\\reportWebVitals.js":"2","G:\\_comp_\\odsc\\orig\\AllNotes\\client\\src\\App.js":"3","G:\\_comp_\\odsc\\orig\\AllNotes\\client\\src\\components\\error\\Error.js":"4","G:\\_comp_\\odsc\\orig\\AllNotes\\client\\src\\components\\home\\Home.js":"5","G:\\_comp_\\odsc\\orig\\AllNotes\\client\\src\\history.js":"6"},{"size":500,"mtime":1615902948521,"results":"7","hashOfConfig":"8"},{"size":362,"mtime":1615902948524,"results":"9","hashOfConfig":"8"},{"size":1271,"mtime":1616062306431,"results":"10","hashOfConfig":"8"},{"size":495,"mtime":1616058444690,"results":"11","hashOfConfig":"8"},{"size":209,"mtime":1616057953339,"results":"12","hashOfConfig":"8"},{"size":99,"mtime":1616054087701,"results":"13","hashOfConfig":"8"},{"filePath":"14","messages":"15","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"16"},"eix1er",{"filePath":"17","messages":"18","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"16"},{"filePath":"19","messages":"20","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"21","messages":"22","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"16"},{"filePath":"23","messages":"24","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"16"},{"filePath":"25","messages":"26","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"16"},"G:\\_comp_\\odsc\\orig\\AllNotes\\client\\src\\index.js",[],["27","28"],"G:\\_comp_\\odsc\\orig\\AllNotes\\client\\src\\reportWebVitals.js",[],"G:\\_comp_\\odsc\\orig\\AllNotes\\client\\src\\App.js",["29","30"],"G:\\_comp_\\odsc\\orig\\AllNotes\\client\\src\\components\\error\\Error.js",[],"G:\\_comp_\\odsc\\orig\\AllNotes\\client\\src\\components\\home\\Home.js",[],"G:\\_comp_\\odsc\\orig\\AllNotes\\client\\src\\history.js",[],{"ruleId":"31","replacedBy":"32"},{"ruleId":"33","replacedBy":"34"},{"ruleId":"35","severity":1,"message":"36","line":1,"column":8,"nodeType":"37","messageId":"38","endLine":1,"endColumn":12},{"ruleId":"35","severity":1,"message":"39","line":9,"column":20,"nodeType":"37","messageId":"38","endLine":9,"endColumn":27},"no-native-reassign",["40"],"no-negated-in-lhs",["41"],"no-unused-vars","'logo' is defined but never used.","Identifier","unusedVar","'Routerr' is defined but never used.","no-global-assign","no-unsafe-negation"] \ No newline at end of file From 9ba4508f37598fe3ae14fc2a83cf5f7f1db347b1 Mon Sep 17 00:00:00 2001 From: copyNinja1219 Date: Sat, 20 Mar 2021 17:44:21 +0530 Subject: [PATCH 04/10] added files to .gitignore --- client/.gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/.gitignore b/client/.gitignore index 46124d0..2e5d9b0 100644 --- a/client/.gitignore +++ b/client/.gitignore @@ -21,4 +21,4 @@ npm-debug.log* yarn-debug.log* yarn-error.log* -/node_modules \ No newline at end of file +../node_modules \ No newline at end of file From 1ec62f27cd632f70a42d308388a10710ea4bee9b Mon Sep 17 00:00:00 2001 From: copyNinja1219 Date: Sat, 20 Mar 2021 17:48:21 +0530 Subject: [PATCH 05/10] added files to .gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..30bc162 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/node_modules \ No newline at end of file From 34c00689f5a5d1e6027d323d61cbc6d1d35343be Mon Sep 17 00:00:00 2001 From: copyNinja1219 Date: Sat, 20 Mar 2021 17:49:44 +0530 Subject: [PATCH 06/10] added files to .gitignore --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 30bc162..ae84271 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -/node_modules \ No newline at end of file +./node_modules \ No newline at end of file From 5e89950c1884c0818b7ffb35388f840002d938ff Mon Sep 17 00:00:00 2001 From: copyNinja1219 Date: Sat, 20 Mar 2021 17:50:56 +0530 Subject: [PATCH 07/10] added files to .gitignore --- node_modules/.bin/loose-envify | 15 - node_modules/.bin/loose-envify.cmd | 17 - node_modules/.bin/loose-envify.ps1 | 18 - node_modules/@babel/runtime/LICENSE | 22 - node_modules/@babel/runtime/README.md | 19 - .../@babel/runtime/helpers/AsyncGenerator.js | 101 - .../@babel/runtime/helpers/AwaitValue.js | 6 - .../helpers/applyDecoratedDescriptor.js | 31 - .../runtime/helpers/arrayLikeToArray.js | 12 - .../@babel/runtime/helpers/arrayWithHoles.js | 6 - .../runtime/helpers/arrayWithoutHoles.js | 8 - .../runtime/helpers/assertThisInitialized.js | 10 - .../runtime/helpers/asyncGeneratorDelegate.js | 59 - .../@babel/runtime/helpers/asyncIterator.js | 20 - .../runtime/helpers/asyncToGenerator.js | 38 - .../runtime/helpers/awaitAsyncGenerator.js | 8 - .../classApplyDescriptorDestructureSet.js | 23 - .../helpers/classApplyDescriptorGet.js | 10 - .../helpers/classApplyDescriptorSet.js | 14 - .../@babel/runtime/helpers/classCallCheck.js | 8 - .../helpers/classCheckPrivateStaticAccess.js | 8 - .../classCheckPrivateStaticFieldDescriptor.js | 8 - .../helpers/classExtractFieldDescriptor.js | 10 - .../runtime/helpers/classNameTDZError.js | 6 - .../classPrivateFieldDestructureSet.js | 11 - .../runtime/helpers/classPrivateFieldGet.js | 11 - .../helpers/classPrivateFieldLooseBase.js | 10 - .../helpers/classPrivateFieldLooseKey.js | 8 - .../runtime/helpers/classPrivateFieldSet.js | 12 - .../runtime/helpers/classPrivateMethodGet.js | 10 - .../runtime/helpers/classPrivateMethodSet.js | 6 - .../classStaticPrivateFieldDestructureSet.js | 14 - .../helpers/classStaticPrivateFieldSpecGet.js | 14 - .../helpers/classStaticPrivateFieldSpecSet.js | 15 - .../helpers/classStaticPrivateMethodGet.js | 9 - .../helpers/classStaticPrivateMethodSet.js | 6 - .../@babel/runtime/helpers/construct.js | 26 - .../@babel/runtime/helpers/createClass.js | 18 - .../helpers/createForOfIteratorHelper.js | 61 - .../helpers/createForOfIteratorHelperLoose.js | 29 - .../@babel/runtime/helpers/createSuper.js | 25 - .../@babel/runtime/helpers/decorate.js | 401 -- .../@babel/runtime/helpers/defaults.js | 17 - .../helpers/defineEnumerableProperties.js | 25 - .../@babel/runtime/helpers/defineProperty.js | 17 - .../runtime/helpers/esm/AsyncGenerator.js | 97 - .../@babel/runtime/helpers/esm/AwaitValue.js | 3 - .../helpers/esm/applyDecoratedDescriptor.js | 28 - .../runtime/helpers/esm/arrayLikeToArray.js | 9 - .../runtime/helpers/esm/arrayWithHoles.js | 3 - .../runtime/helpers/esm/arrayWithoutHoles.js | 4 - .../helpers/esm/assertThisInitialized.js | 7 - .../helpers/esm/asyncGeneratorDelegate.js | 56 - .../runtime/helpers/esm/asyncIterator.js | 17 - .../runtime/helpers/esm/asyncToGenerator.js | 35 - .../helpers/esm/awaitAsyncGenerator.js | 4 - .../esm/classApplyDescriptorDestructureSet.js | 20 - .../helpers/esm/classApplyDescriptorGet.js | 7 - .../helpers/esm/classApplyDescriptorSet.js | 11 - .../runtime/helpers/esm/classCallCheck.js | 5 - .../esm/classCheckPrivateStaticAccess.js | 5 - .../classCheckPrivateStaticFieldDescriptor.js | 5 - .../esm/classExtractFieldDescriptor.js | 7 - .../runtime/helpers/esm/classNameTDZError.js | 3 - .../esm/classPrivateFieldDestructureSet.js | 6 - .../helpers/esm/classPrivateFieldGet.js | 6 - .../helpers/esm/classPrivateFieldLooseBase.js | 7 - .../helpers/esm/classPrivateFieldLooseKey.js | 4 - .../helpers/esm/classPrivateFieldSet.js | 7 - .../helpers/esm/classPrivateMethodGet.js | 7 - .../helpers/esm/classPrivateMethodSet.js | 3 - .../classStaticPrivateFieldDestructureSet.js | 8 - .../esm/classStaticPrivateFieldSpecGet.js | 8 - .../esm/classStaticPrivateFieldSpecSet.js | 9 - .../esm/classStaticPrivateMethodGet.js | 5 - .../esm/classStaticPrivateMethodSet.js | 3 - .../@babel/runtime/helpers/esm/construct.js | 18 - .../@babel/runtime/helpers/esm/createClass.js | 15 - .../helpers/esm/createForOfIteratorHelper.js | 57 - .../esm/createForOfIteratorHelperLoose.js | 25 - .../@babel/runtime/helpers/esm/createSuper.js | 19 - .../@babel/runtime/helpers/esm/decorate.js | 396 -- .../@babel/runtime/helpers/esm/defaults.js | 14 - .../helpers/esm/defineEnumerableProperties.js | 22 - .../runtime/helpers/esm/defineProperty.js | 14 - .../@babel/runtime/helpers/esm/extends.js | 17 - .../@babel/runtime/helpers/esm/get.js | 20 - .../runtime/helpers/esm/getPrototypeOf.js | 6 - .../@babel/runtime/helpers/esm/inherits.js | 15 - .../runtime/helpers/esm/inheritsLoose.js | 6 - .../helpers/esm/initializerDefineProperty.js | 9 - .../helpers/esm/initializerWarningHelper.js | 3 - .../@babel/runtime/helpers/esm/instanceof.js | 7 - .../helpers/esm/interopRequireDefault.js | 5 - .../helpers/esm/interopRequireWildcard.js | 53 - .../runtime/helpers/esm/isNativeFunction.js | 3 - .../helpers/esm/isNativeReflectConstruct.js | 12 - .../runtime/helpers/esm/iterableToArray.js | 3 - .../helpers/esm/iterableToArrayLimit.js | 26 - .../helpers/esm/iterableToArrayLimitLoose.js | 12 - .../@babel/runtime/helpers/esm/jsx.js | 46 - .../runtime/helpers/esm/maybeArrayLike.js | 9 - .../runtime/helpers/esm/newArrowCheck.js | 5 - .../runtime/helpers/esm/nonIterableRest.js | 3 - .../runtime/helpers/esm/nonIterableSpread.js | 3 - .../helpers/esm/objectDestructuringEmpty.js | 3 - .../runtime/helpers/esm/objectSpread.js | 19 - .../runtime/helpers/esm/objectSpread2.js | 35 - .../helpers/esm/objectWithoutProperties.js | 19 - .../esm/objectWithoutPropertiesLoose.js | 14 - .../@babel/runtime/helpers/esm/package.json | 3 - .../helpers/esm/possibleConstructorReturn.js | 9 - .../runtime/helpers/esm/readOnlyError.js | 3 - .../@babel/runtime/helpers/esm/set.js | 51 - .../runtime/helpers/esm/setPrototypeOf.js | 8 - .../helpers/esm/skipFirstGeneratorNext.js | 7 - .../runtime/helpers/esm/slicedToArray.js | 7 - .../runtime/helpers/esm/slicedToArrayLoose.js | 7 - .../runtime/helpers/esm/superPropBase.js | 9 - .../helpers/esm/taggedTemplateLiteral.js | 11 - .../helpers/esm/taggedTemplateLiteralLoose.js | 8 - .../@babel/runtime/helpers/esm/tdz.js | 3 - .../@babel/runtime/helpers/esm/temporalRef.js | 5 - .../runtime/helpers/esm/temporalUndefined.js | 1 - .../@babel/runtime/helpers/esm/toArray.js | 7 - .../runtime/helpers/esm/toConsumableArray.js | 7 - .../@babel/runtime/helpers/esm/toPrimitive.js | 13 - .../runtime/helpers/esm/toPropertyKey.js | 6 - .../@babel/runtime/helpers/esm/typeof.js | 15 - .../helpers/esm/unsupportedIterableToArray.js | 9 - .../runtime/helpers/esm/wrapAsyncGenerator.js | 6 - .../runtime/helpers/esm/wrapNativeSuper.js | 37 - .../@babel/runtime/helpers/esm/wrapRegExp.js | 69 - .../runtime/helpers/esm/writeOnlyError.js | 3 - .../@babel/runtime/helpers/extends.js | 21 - node_modules/@babel/runtime/helpers/get.js | 27 - .../@babel/runtime/helpers/getPrototypeOf.js | 10 - .../@babel/runtime/helpers/inherits.js | 19 - .../@babel/runtime/helpers/inheritsLoose.js | 10 - .../helpers/initializerDefineProperty.js | 12 - .../helpers/initializerWarningHelper.js | 6 - .../@babel/runtime/helpers/instanceof.js | 10 - .../runtime/helpers/interopRequireDefault.js | 8 - .../runtime/helpers/interopRequireWildcard.js | 56 - .../runtime/helpers/isNativeFunction.js | 6 - .../helpers/isNativeReflectConstruct.js | 15 - .../@babel/runtime/helpers/iterableToArray.js | 6 - .../runtime/helpers/iterableToArrayLimit.js | 29 - .../helpers/iterableToArrayLimitLoose.js | 15 - node_modules/@babel/runtime/helpers/jsx.js | 50 - .../@babel/runtime/helpers/maybeArrayLike.js | 13 - .../@babel/runtime/helpers/newArrowCheck.js | 8 - .../@babel/runtime/helpers/nonIterableRest.js | 6 - .../runtime/helpers/nonIterableSpread.js | 6 - .../helpers/objectDestructuringEmpty.js | 6 - .../@babel/runtime/helpers/objectSpread.js | 23 - .../@babel/runtime/helpers/objectSpread2.js | 38 - .../helpers/objectWithoutProperties.js | 23 - .../helpers/objectWithoutPropertiesLoose.js | 17 - .../helpers/possibleConstructorReturn.js | 14 - .../@babel/runtime/helpers/readOnlyError.js | 6 - node_modules/@babel/runtime/helpers/set.js | 55 - .../@babel/runtime/helpers/setPrototypeOf.js | 12 - .../runtime/helpers/skipFirstGeneratorNext.js | 10 - .../@babel/runtime/helpers/slicedToArray.js | 14 - .../runtime/helpers/slicedToArrayLoose.js | 14 - .../@babel/runtime/helpers/superPropBase.js | 13 - .../runtime/helpers/taggedTemplateLiteral.js | 14 - .../helpers/taggedTemplateLiteralLoose.js | 11 - node_modules/@babel/runtime/helpers/tdz.js | 6 - .../@babel/runtime/helpers/temporalRef.js | 10 - .../runtime/helpers/temporalUndefined.js | 4 - .../@babel/runtime/helpers/toArray.js | 14 - .../runtime/helpers/toConsumableArray.js | 14 - .../@babel/runtime/helpers/toPrimitive.js | 17 - .../@babel/runtime/helpers/toPropertyKey.js | 11 - node_modules/@babel/runtime/helpers/typeof.js | 22 - .../helpers/unsupportedIterableToArray.js | 13 - .../runtime/helpers/wrapAsyncGenerator.js | 10 - .../@babel/runtime/helpers/wrapNativeSuper.js | 45 - .../@babel/runtime/helpers/wrapRegExp.js | 79 - .../@babel/runtime/helpers/writeOnlyError.js | 6 - node_modules/@babel/runtime/package.json | 853 ---- .../@babel/runtime/regenerator/index.js | 1 - node_modules/history/DOMUtils.js | 3 - node_modules/history/ExecutionEnvironment.js | 3 - node_modules/history/LICENSE | 21 - node_modules/history/LocationUtils.js | 3 - node_modules/history/PathUtils.js | 3 - node_modules/history/README.md | 38 - node_modules/history/cjs/history.js | 948 ---- node_modules/history/cjs/history.min.js | 1 - node_modules/history/createBrowserHistory.js | 3 - node_modules/history/createHashHistory.js | 3 - node_modules/history/createMemoryHistory.js | 3 - .../history/createTransitionManager.js | 3 - node_modules/history/es/DOMUtils.js | 7 - .../history/es/ExecutionEnvironment.js | 7 - node_modules/history/es/LocationUtils.js | 7 - node_modules/history/es/PathUtils.js | 7 - .../history/es/createBrowserHistory.js | 7 - node_modules/history/es/createHashHistory.js | 7 - .../history/es/createMemoryHistory.js | 7 - .../history/es/createTransitionManager.js | 7 - .../es/warnAboutDeprecatedESMImport.js | 35 - node_modules/history/esm/history.js | 919 ---- node_modules/history/index.js | 7 - node_modules/history/package.json | 117 - node_modules/history/umd/history.js | 1085 ----- node_modules/history/umd/history.min.js | 1 - .../history/warnAboutDeprecatedCJSRequire.js | 35 - .../hoist-non-react-statics/CHANGELOG.md | 37 - .../hoist-non-react-statics/LICENSE.md | 29 - .../hoist-non-react-statics/README.md | 55 - .../dist/hoist-non-react-statics.cjs.js | 103 - .../dist/hoist-non-react-statics.js | 449 -- .../dist/hoist-non-react-statics.min.js | 1 - .../hoist-non-react-statics/package.json | 87 - .../hoist-non-react-statics/src/index.js | 104 - node_modules/isarray/README.md | 54 - node_modules/isarray/build/build.js | 209 - node_modules/isarray/component.json | 19 - node_modules/isarray/index.js | 3 - node_modules/isarray/package.json | 57 - node_modules/js-tokens/CHANGELOG.md | 151 - node_modules/js-tokens/LICENSE | 21 - node_modules/js-tokens/README.md | 240 - node_modules/js-tokens/index.js | 23 - node_modules/js-tokens/package.json | 64 - node_modules/loose-envify/LICENSE | 21 - node_modules/loose-envify/README.md | 45 - node_modules/loose-envify/cli.js | 16 - node_modules/loose-envify/custom.js | 4 - node_modules/loose-envify/index.js | 3 - node_modules/loose-envify/loose-envify.js | 36 - node_modules/loose-envify/package.json | 70 - node_modules/loose-envify/replace.js | 65 - .../mini-create-react-context/LICENSE | 21 - .../mini-create-react-context/README.md | 124 - .../dist/cjs/index.js | 167 - .../dist/cjs/index.min.js | 1 - .../dist/esm/index.js | 176 - .../mini-create-react-context/dist/index.d.ts | 24 - .../mini-create-react-context/package.json | 98 - node_modules/object-assign/index.js | 90 - node_modules/object-assign/license | 21 - node_modules/object-assign/package.json | 74 - node_modules/object-assign/readme.md | 61 - node_modules/path-to-regexp/History.md | 158 - node_modules/path-to-regexp/LICENSE | 21 - node_modules/path-to-regexp/Readme.md | 257 -- node_modules/path-to-regexp/index.d.ts | 84 - node_modules/path-to-regexp/index.js | 426 -- node_modules/path-to-regexp/package.json | 76 - node_modules/prop-types/CHANGELOG.md | 92 - node_modules/prop-types/LICENSE | 21 - node_modules/prop-types/README.md | 296 -- node_modules/prop-types/checkPropTypes.js | 102 - node_modules/prop-types/factory.js | 19 - .../prop-types/factoryWithThrowingShims.js | 64 - .../prop-types/factoryWithTypeCheckers.js | 591 --- node_modules/prop-types/index.js | 19 - .../prop-types/lib/ReactPropTypesSecret.js | 12 - node_modules/prop-types/package.json | 87 - node_modules/prop-types/prop-types.js | 1337 ------ node_modules/prop-types/prop-types.min.js | 1 - node_modules/react-is/LICENSE | 21 - node_modules/react-is/README.md | 104 - node_modules/react-is/build-info.json | 8 - .../react-is/cjs/react-is.development.js | 181 - .../react-is/cjs/react-is.production.min.js | 15 - node_modules/react-is/index.js | 7 - node_modules/react-is/package.json | 54 - .../react-is/umd/react-is.development.js | 181 - .../react-is/umd/react-is.production.min.js | 13 - .../react-router-dom/BrowserRouter.js | 3 - node_modules/react-router-dom/HashRouter.js | 3 - node_modules/react-router-dom/LICENSE | 21 - node_modules/react-router-dom/Link.js | 3 - node_modules/react-router-dom/MemoryRouter.js | 3 - node_modules/react-router-dom/NavLink.js | 3 - node_modules/react-router-dom/Prompt.js | 3 - node_modules/react-router-dom/README.md | 37 - node_modules/react-router-dom/Redirect.js | 3 - node_modules/react-router-dom/Route.js | 3 - node_modules/react-router-dom/Router.js | 3 - node_modules/react-router-dom/StaticRouter.js | 3 - node_modules/react-router-dom/Switch.js | 3 - .../react-router-dom/cjs/react-router-dom.js | 443 -- .../cjs/react-router-dom.js.map | 1 - .../cjs/react-router-dom.min.js | 2 - .../cjs/react-router-dom.min.js.map | 1 - .../react-router-dom/es/BrowserRouter.js | 5 - .../react-router-dom/es/HashRouter.js | 5 - node_modules/react-router-dom/es/Link.js | 5 - .../react-router-dom/es/MemoryRouter.js | 5 - node_modules/react-router-dom/es/NavLink.js | 5 - node_modules/react-router-dom/es/Prompt.js | 5 - node_modules/react-router-dom/es/Redirect.js | 5 - node_modules/react-router-dom/es/Route.js | 5 - node_modules/react-router-dom/es/Router.js | 5 - .../react-router-dom/es/StaticRouter.js | 5 - node_modules/react-router-dom/es/Switch.js | 5 - .../react-router-dom/es/generatePath.js | 5 - node_modules/react-router-dom/es/matchPath.js | 5 - .../es/warnAboutDeprecatedESMImport.js | 34 - .../react-router-dom/es/withRouter.js | 5 - .../react-router-dom/esm/react-router-dom.js | 317 -- .../esm/react-router-dom.js.map | 1 - node_modules/react-router-dom/generatePath.js | 3 - node_modules/react-router-dom/index.js | 7 - node_modules/react-router-dom/matchPath.js | 3 - .../react-router-dom/modules/BrowserRouter.js | 36 - .../react-router-dom/modules/HashRouter.js | 35 - node_modules/react-router-dom/modules/Link.js | 146 - .../react-router-dom/modules/NavLink.js | 125 - .../react-router-dom/modules/index.js | 21 - .../modules/utils/locationUtils.js | 10 - node_modules/react-router-dom/package.json | 101 - .../react-router-dom/umd/react-router-dom.js | 3969 ----------------- .../umd/react-router-dom.js.map | 1 - .../umd/react-router-dom.min.js | 2 - .../umd/react-router-dom.min.js.map | 1 - .../warnAboutDeprecatedCJSRequire.js | 36 - node_modules/react-router-dom/withRouter.js | 3 - node_modules/react-router/LICENSE | 21 - node_modules/react-router/MemoryRouter.js | 3 - node_modules/react-router/Prompt.js | 3 - node_modules/react-router/README.md | 39 - node_modules/react-router/Redirect.js | 3 - node_modules/react-router/Route.js | 3 - node_modules/react-router/Router.js | 3 - node_modules/react-router/StaticRouter.js | 3 - node_modules/react-router/Switch.js | 3 - node_modules/react-router/cjs/react-router.js | 825 ---- .../react-router/cjs/react-router.js.map | 1 - .../react-router/cjs/react-router.min.js | 2 - .../react-router/cjs/react-router.min.js.map | 1 - node_modules/react-router/es/MemoryRouter.js | 5 - node_modules/react-router/es/Prompt.js | 5 - node_modules/react-router/es/Redirect.js | 5 - node_modules/react-router/es/Route.js | 5 - node_modules/react-router/es/Router.js | 5 - node_modules/react-router/es/StaticRouter.js | 5 - node_modules/react-router/es/Switch.js | 5 - node_modules/react-router/es/generatePath.js | 5 - node_modules/react-router/es/matchPath.js | 5 - .../es/warnAboutDeprecatedESMImport.js | 34 - node_modules/react-router/es/withRouter.js | 5 - node_modules/react-router/esm/react-router.js | 770 ---- .../react-router/esm/react-router.js.map | 1 - node_modules/react-router/generatePath.js | 3 - node_modules/react-router/index.js | 7 - node_modules/react-router/matchPath.js | 3 - .../react-router/modules/HistoryContext.js | 4 - .../react-router/modules/Lifecycle.js | 21 - .../react-router/modules/MemoryRouter.js | 37 - node_modules/react-router/modules/Prompt.js | 52 - node_modules/react-router/modules/Redirect.js | 72 - node_modules/react-router/modules/Route.js | 140 - node_modules/react-router/modules/Router.js | 88 - .../react-router/modules/RouterContext.js | 12 - .../react-router/modules/StaticRouter.js | 102 - node_modules/react-router/modules/Switch.js | 67 - .../react-router/modules/createNameContext.js | 11 - .../react-router/modules/generatePath.js | 27 - node_modules/react-router/modules/hooks.js | 56 - node_modules/react-router/modules/index.js | 39 - .../react-router/modules/matchPath.js | 67 - .../react-router/modules/withRouter.js | 51 - node_modules/react-router/package.json | 99 - node_modules/react-router/umd/react-router.js | 3075 ------------- .../react-router/umd/react-router.js.map | 1 - .../react-router/umd/react-router.min.js | 2 - .../react-router/umd/react-router.min.js.map | 1 - .../warnAboutDeprecatedCJSRequire.js | 36 - node_modules/react-router/withRouter.js | 3 - node_modules/regenerator-runtime/LICENSE | 21 - node_modules/regenerator-runtime/README.md | 31 - node_modules/regenerator-runtime/package.json | 47 - node_modules/regenerator-runtime/path.js | 11 - node_modules/regenerator-runtime/runtime.js | 748 ---- node_modules/resolve-pathname/LICENSE | 21 - node_modules/resolve-pathname/README.md | 64 - .../resolve-pathname/cjs/resolve-pathname.js | 77 - .../cjs/resolve-pathname.min.js | 1 - .../resolve-pathname/esm/resolve-pathname.js | 75 - node_modules/resolve-pathname/index.js | 7 - node_modules/resolve-pathname/package.json | 71 - .../resolve-pathname/umd/resolve-pathname.js | 83 - .../umd/resolve-pathname.min.js | 1 - node_modules/tiny-invariant/LICENSE | 21 - node_modules/tiny-invariant/README.md | 97 - .../tiny-invariant/dist/tiny-invariant.cjs.js | 15 - .../tiny-invariant/dist/tiny-invariant.d.ts | 1 - .../tiny-invariant/dist/tiny-invariant.esm.js | 13 - .../tiny-invariant/dist/tiny-invariant.js | 20 - .../tiny-invariant/dist/tiny-invariant.min.js | 1 - node_modules/tiny-invariant/package.json | 85 - .../tiny-invariant/src/tiny-invariant.flow.js | 12 - .../tiny-invariant/src/tiny-invariant.ts | 25 - node_modules/tiny-warning/LICENSE | 21 - node_modules/tiny-warning/README.md | 68 - .../tiny-warning/dist/tiny-warning.cjs.js | 22 - .../dist/tiny-warning.cjs.js.flow | 3 - .../tiny-warning/dist/tiny-warning.esm.js | 20 - .../tiny-warning/dist/tiny-warning.js | 27 - .../tiny-warning/dist/tiny-warning.min.js | 1 - node_modules/tiny-warning/package.json | 85 - node_modules/tiny-warning/src/index.d.ts | 1 - node_modules/tiny-warning/src/index.js | 30 - node_modules/value-equal/LICENSE | 21 - node_modules/value-equal/README.md | 54 - node_modules/value-equal/cjs/value-equal.js | 38 - .../value-equal/cjs/value-equal.min.js | 1 - node_modules/value-equal/esm/value-equal.js | 36 - node_modules/value-equal/index.js | 7 - node_modules/value-equal/package.json | 71 - node_modules/value-equal/umd/value-equal.js | 44 - .../value-equal/umd/value-equal.min.js | 1 - 420 files changed, 28322 deletions(-) delete mode 100644 node_modules/.bin/loose-envify delete mode 100644 node_modules/.bin/loose-envify.cmd delete mode 100644 node_modules/.bin/loose-envify.ps1 delete mode 100644 node_modules/@babel/runtime/LICENSE delete mode 100644 node_modules/@babel/runtime/README.md delete mode 100644 node_modules/@babel/runtime/helpers/AsyncGenerator.js delete mode 100644 node_modules/@babel/runtime/helpers/AwaitValue.js delete mode 100644 node_modules/@babel/runtime/helpers/applyDecoratedDescriptor.js delete mode 100644 node_modules/@babel/runtime/helpers/arrayLikeToArray.js delete mode 100644 node_modules/@babel/runtime/helpers/arrayWithHoles.js delete mode 100644 node_modules/@babel/runtime/helpers/arrayWithoutHoles.js delete mode 100644 node_modules/@babel/runtime/helpers/assertThisInitialized.js delete mode 100644 node_modules/@babel/runtime/helpers/asyncGeneratorDelegate.js delete mode 100644 node_modules/@babel/runtime/helpers/asyncIterator.js delete mode 100644 node_modules/@babel/runtime/helpers/asyncToGenerator.js delete mode 100644 node_modules/@babel/runtime/helpers/awaitAsyncGenerator.js delete mode 100644 node_modules/@babel/runtime/helpers/classApplyDescriptorDestructureSet.js delete mode 100644 node_modules/@babel/runtime/helpers/classApplyDescriptorGet.js delete mode 100644 node_modules/@babel/runtime/helpers/classApplyDescriptorSet.js delete mode 100644 node_modules/@babel/runtime/helpers/classCallCheck.js delete mode 100644 node_modules/@babel/runtime/helpers/classCheckPrivateStaticAccess.js delete mode 100644 node_modules/@babel/runtime/helpers/classCheckPrivateStaticFieldDescriptor.js delete mode 100644 node_modules/@babel/runtime/helpers/classExtractFieldDescriptor.js delete mode 100644 node_modules/@babel/runtime/helpers/classNameTDZError.js delete mode 100644 node_modules/@babel/runtime/helpers/classPrivateFieldDestructureSet.js delete mode 100644 node_modules/@babel/runtime/helpers/classPrivateFieldGet.js delete mode 100644 node_modules/@babel/runtime/helpers/classPrivateFieldLooseBase.js delete mode 100644 node_modules/@babel/runtime/helpers/classPrivateFieldLooseKey.js delete mode 100644 node_modules/@babel/runtime/helpers/classPrivateFieldSet.js delete mode 100644 node_modules/@babel/runtime/helpers/classPrivateMethodGet.js delete mode 100644 node_modules/@babel/runtime/helpers/classPrivateMethodSet.js delete mode 100644 node_modules/@babel/runtime/helpers/classStaticPrivateFieldDestructureSet.js delete mode 100644 node_modules/@babel/runtime/helpers/classStaticPrivateFieldSpecGet.js delete mode 100644 node_modules/@babel/runtime/helpers/classStaticPrivateFieldSpecSet.js delete mode 100644 node_modules/@babel/runtime/helpers/classStaticPrivateMethodGet.js delete mode 100644 node_modules/@babel/runtime/helpers/classStaticPrivateMethodSet.js delete mode 100644 node_modules/@babel/runtime/helpers/construct.js delete mode 100644 node_modules/@babel/runtime/helpers/createClass.js delete mode 100644 node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js delete mode 100644 node_modules/@babel/runtime/helpers/createForOfIteratorHelperLoose.js delete mode 100644 node_modules/@babel/runtime/helpers/createSuper.js delete mode 100644 node_modules/@babel/runtime/helpers/decorate.js delete mode 100644 node_modules/@babel/runtime/helpers/defaults.js delete mode 100644 node_modules/@babel/runtime/helpers/defineEnumerableProperties.js delete mode 100644 node_modules/@babel/runtime/helpers/defineProperty.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/AsyncGenerator.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/AwaitValue.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/applyDecoratedDescriptor.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/asyncGeneratorDelegate.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/asyncIterator.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/awaitAsyncGenerator.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/classApplyDescriptorDestructureSet.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/classApplyDescriptorGet.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/classApplyDescriptorSet.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/classCallCheck.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/classCheckPrivateStaticAccess.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/classCheckPrivateStaticFieldDescriptor.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/classExtractFieldDescriptor.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/classNameTDZError.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/classPrivateFieldDestructureSet.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseBase.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseKey.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/classPrivateMethodGet.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/classPrivateMethodSet.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldDestructureSet.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldSpecGet.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldSpecSet.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/classStaticPrivateMethodGet.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/classStaticPrivateMethodSet.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/construct.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/createClass.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelperLoose.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/createSuper.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/decorate.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/defaults.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/defineEnumerableProperties.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/defineProperty.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/extends.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/get.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/inherits.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/inheritsLoose.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/initializerDefineProperty.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/initializerWarningHelper.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/instanceof.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/interopRequireDefault.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/interopRequireWildcard.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/isNativeFunction.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/iterableToArray.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/iterableToArrayLimitLoose.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/jsx.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/maybeArrayLike.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/newArrowCheck.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/nonIterableRest.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/objectDestructuringEmpty.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/objectSpread.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/objectSpread2.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/package.json delete mode 100644 node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/readOnlyError.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/set.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/skipFirstGeneratorNext.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/slicedToArray.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/slicedToArrayLoose.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/superPropBase.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteralLoose.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/tdz.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/temporalRef.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/temporalUndefined.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/toArray.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/toConsumableArray.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/toPrimitive.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/toPropertyKey.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/typeof.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/wrapAsyncGenerator.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/wrapRegExp.js delete mode 100644 node_modules/@babel/runtime/helpers/esm/writeOnlyError.js delete mode 100644 node_modules/@babel/runtime/helpers/extends.js delete mode 100644 node_modules/@babel/runtime/helpers/get.js delete mode 100644 node_modules/@babel/runtime/helpers/getPrototypeOf.js delete mode 100644 node_modules/@babel/runtime/helpers/inherits.js delete mode 100644 node_modules/@babel/runtime/helpers/inheritsLoose.js delete mode 100644 node_modules/@babel/runtime/helpers/initializerDefineProperty.js delete mode 100644 node_modules/@babel/runtime/helpers/initializerWarningHelper.js delete mode 100644 node_modules/@babel/runtime/helpers/instanceof.js delete mode 100644 node_modules/@babel/runtime/helpers/interopRequireDefault.js delete mode 100644 node_modules/@babel/runtime/helpers/interopRequireWildcard.js delete mode 100644 node_modules/@babel/runtime/helpers/isNativeFunction.js delete mode 100644 node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js delete mode 100644 node_modules/@babel/runtime/helpers/iterableToArray.js delete mode 100644 node_modules/@babel/runtime/helpers/iterableToArrayLimit.js delete mode 100644 node_modules/@babel/runtime/helpers/iterableToArrayLimitLoose.js delete mode 100644 node_modules/@babel/runtime/helpers/jsx.js delete mode 100644 node_modules/@babel/runtime/helpers/maybeArrayLike.js delete mode 100644 node_modules/@babel/runtime/helpers/newArrowCheck.js delete mode 100644 node_modules/@babel/runtime/helpers/nonIterableRest.js delete mode 100644 node_modules/@babel/runtime/helpers/nonIterableSpread.js delete mode 100644 node_modules/@babel/runtime/helpers/objectDestructuringEmpty.js delete mode 100644 node_modules/@babel/runtime/helpers/objectSpread.js delete mode 100644 node_modules/@babel/runtime/helpers/objectSpread2.js delete mode 100644 node_modules/@babel/runtime/helpers/objectWithoutProperties.js delete mode 100644 node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js delete mode 100644 node_modules/@babel/runtime/helpers/possibleConstructorReturn.js delete mode 100644 node_modules/@babel/runtime/helpers/readOnlyError.js delete mode 100644 node_modules/@babel/runtime/helpers/set.js delete mode 100644 node_modules/@babel/runtime/helpers/setPrototypeOf.js delete mode 100644 node_modules/@babel/runtime/helpers/skipFirstGeneratorNext.js delete mode 100644 node_modules/@babel/runtime/helpers/slicedToArray.js delete mode 100644 node_modules/@babel/runtime/helpers/slicedToArrayLoose.js delete mode 100644 node_modules/@babel/runtime/helpers/superPropBase.js delete mode 100644 node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js delete mode 100644 node_modules/@babel/runtime/helpers/taggedTemplateLiteralLoose.js delete mode 100644 node_modules/@babel/runtime/helpers/tdz.js delete mode 100644 node_modules/@babel/runtime/helpers/temporalRef.js delete mode 100644 node_modules/@babel/runtime/helpers/temporalUndefined.js delete mode 100644 node_modules/@babel/runtime/helpers/toArray.js delete mode 100644 node_modules/@babel/runtime/helpers/toConsumableArray.js delete mode 100644 node_modules/@babel/runtime/helpers/toPrimitive.js delete mode 100644 node_modules/@babel/runtime/helpers/toPropertyKey.js delete mode 100644 node_modules/@babel/runtime/helpers/typeof.js delete mode 100644 node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js delete mode 100644 node_modules/@babel/runtime/helpers/wrapAsyncGenerator.js delete mode 100644 node_modules/@babel/runtime/helpers/wrapNativeSuper.js delete mode 100644 node_modules/@babel/runtime/helpers/wrapRegExp.js delete mode 100644 node_modules/@babel/runtime/helpers/writeOnlyError.js delete mode 100644 node_modules/@babel/runtime/package.json delete mode 100644 node_modules/@babel/runtime/regenerator/index.js delete mode 100644 node_modules/history/DOMUtils.js delete mode 100644 node_modules/history/ExecutionEnvironment.js delete mode 100644 node_modules/history/LICENSE delete mode 100644 node_modules/history/LocationUtils.js delete mode 100644 node_modules/history/PathUtils.js delete mode 100644 node_modules/history/README.md delete mode 100644 node_modules/history/cjs/history.js delete mode 100644 node_modules/history/cjs/history.min.js delete mode 100644 node_modules/history/createBrowserHistory.js delete mode 100644 node_modules/history/createHashHistory.js delete mode 100644 node_modules/history/createMemoryHistory.js delete mode 100644 node_modules/history/createTransitionManager.js delete mode 100644 node_modules/history/es/DOMUtils.js delete mode 100644 node_modules/history/es/ExecutionEnvironment.js delete mode 100644 node_modules/history/es/LocationUtils.js delete mode 100644 node_modules/history/es/PathUtils.js delete mode 100644 node_modules/history/es/createBrowserHistory.js delete mode 100644 node_modules/history/es/createHashHistory.js delete mode 100644 node_modules/history/es/createMemoryHistory.js delete mode 100644 node_modules/history/es/createTransitionManager.js delete mode 100644 node_modules/history/es/warnAboutDeprecatedESMImport.js delete mode 100644 node_modules/history/esm/history.js delete mode 100644 node_modules/history/index.js delete mode 100644 node_modules/history/package.json delete mode 100644 node_modules/history/umd/history.js delete mode 100644 node_modules/history/umd/history.min.js delete mode 100644 node_modules/history/warnAboutDeprecatedCJSRequire.js delete mode 100644 node_modules/hoist-non-react-statics/CHANGELOG.md delete mode 100644 node_modules/hoist-non-react-statics/LICENSE.md delete mode 100644 node_modules/hoist-non-react-statics/README.md delete mode 100644 node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js delete mode 100644 node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.js delete mode 100644 node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.min.js delete mode 100644 node_modules/hoist-non-react-statics/package.json delete mode 100644 node_modules/hoist-non-react-statics/src/index.js delete mode 100644 node_modules/isarray/README.md delete mode 100644 node_modules/isarray/build/build.js delete mode 100644 node_modules/isarray/component.json delete mode 100644 node_modules/isarray/index.js delete mode 100644 node_modules/isarray/package.json delete mode 100644 node_modules/js-tokens/CHANGELOG.md delete mode 100644 node_modules/js-tokens/LICENSE delete mode 100644 node_modules/js-tokens/README.md delete mode 100644 node_modules/js-tokens/index.js delete mode 100644 node_modules/js-tokens/package.json delete mode 100644 node_modules/loose-envify/LICENSE delete mode 100644 node_modules/loose-envify/README.md delete mode 100644 node_modules/loose-envify/cli.js delete mode 100644 node_modules/loose-envify/custom.js delete mode 100644 node_modules/loose-envify/index.js delete mode 100644 node_modules/loose-envify/loose-envify.js delete mode 100644 node_modules/loose-envify/package.json delete mode 100644 node_modules/loose-envify/replace.js delete mode 100644 node_modules/mini-create-react-context/LICENSE delete mode 100644 node_modules/mini-create-react-context/README.md delete mode 100644 node_modules/mini-create-react-context/dist/cjs/index.js delete mode 100644 node_modules/mini-create-react-context/dist/cjs/index.min.js delete mode 100644 node_modules/mini-create-react-context/dist/esm/index.js delete mode 100644 node_modules/mini-create-react-context/dist/index.d.ts delete mode 100644 node_modules/mini-create-react-context/package.json delete mode 100644 node_modules/object-assign/index.js delete mode 100644 node_modules/object-assign/license delete mode 100644 node_modules/object-assign/package.json delete mode 100644 node_modules/object-assign/readme.md delete mode 100644 node_modules/path-to-regexp/History.md delete mode 100644 node_modules/path-to-regexp/LICENSE delete mode 100644 node_modules/path-to-regexp/Readme.md delete mode 100644 node_modules/path-to-regexp/index.d.ts delete mode 100644 node_modules/path-to-regexp/index.js delete mode 100644 node_modules/path-to-regexp/package.json delete mode 100644 node_modules/prop-types/CHANGELOG.md delete mode 100644 node_modules/prop-types/LICENSE delete mode 100644 node_modules/prop-types/README.md delete mode 100644 node_modules/prop-types/checkPropTypes.js delete mode 100644 node_modules/prop-types/factory.js delete mode 100644 node_modules/prop-types/factoryWithThrowingShims.js delete mode 100644 node_modules/prop-types/factoryWithTypeCheckers.js delete mode 100644 node_modules/prop-types/index.js delete mode 100644 node_modules/prop-types/lib/ReactPropTypesSecret.js delete mode 100644 node_modules/prop-types/package.json delete mode 100644 node_modules/prop-types/prop-types.js delete mode 100644 node_modules/prop-types/prop-types.min.js delete mode 100644 node_modules/react-is/LICENSE delete mode 100644 node_modules/react-is/README.md delete mode 100644 node_modules/react-is/build-info.json delete mode 100644 node_modules/react-is/cjs/react-is.development.js delete mode 100644 node_modules/react-is/cjs/react-is.production.min.js delete mode 100644 node_modules/react-is/index.js delete mode 100644 node_modules/react-is/package.json delete mode 100644 node_modules/react-is/umd/react-is.development.js delete mode 100644 node_modules/react-is/umd/react-is.production.min.js delete mode 100644 node_modules/react-router-dom/BrowserRouter.js delete mode 100644 node_modules/react-router-dom/HashRouter.js delete mode 100644 node_modules/react-router-dom/LICENSE delete mode 100644 node_modules/react-router-dom/Link.js delete mode 100644 node_modules/react-router-dom/MemoryRouter.js delete mode 100644 node_modules/react-router-dom/NavLink.js delete mode 100644 node_modules/react-router-dom/Prompt.js delete mode 100644 node_modules/react-router-dom/README.md delete mode 100644 node_modules/react-router-dom/Redirect.js delete mode 100644 node_modules/react-router-dom/Route.js delete mode 100644 node_modules/react-router-dom/Router.js delete mode 100644 node_modules/react-router-dom/StaticRouter.js delete mode 100644 node_modules/react-router-dom/Switch.js delete mode 100644 node_modules/react-router-dom/cjs/react-router-dom.js delete mode 100644 node_modules/react-router-dom/cjs/react-router-dom.js.map delete mode 100644 node_modules/react-router-dom/cjs/react-router-dom.min.js delete mode 100644 node_modules/react-router-dom/cjs/react-router-dom.min.js.map delete mode 100644 node_modules/react-router-dom/es/BrowserRouter.js delete mode 100644 node_modules/react-router-dom/es/HashRouter.js delete mode 100644 node_modules/react-router-dom/es/Link.js delete mode 100644 node_modules/react-router-dom/es/MemoryRouter.js delete mode 100644 node_modules/react-router-dom/es/NavLink.js delete mode 100644 node_modules/react-router-dom/es/Prompt.js delete mode 100644 node_modules/react-router-dom/es/Redirect.js delete mode 100644 node_modules/react-router-dom/es/Route.js delete mode 100644 node_modules/react-router-dom/es/Router.js delete mode 100644 node_modules/react-router-dom/es/StaticRouter.js delete mode 100644 node_modules/react-router-dom/es/Switch.js delete mode 100644 node_modules/react-router-dom/es/generatePath.js delete mode 100644 node_modules/react-router-dom/es/matchPath.js delete mode 100644 node_modules/react-router-dom/es/warnAboutDeprecatedESMImport.js delete mode 100644 node_modules/react-router-dom/es/withRouter.js delete mode 100644 node_modules/react-router-dom/esm/react-router-dom.js delete mode 100644 node_modules/react-router-dom/esm/react-router-dom.js.map delete mode 100644 node_modules/react-router-dom/generatePath.js delete mode 100644 node_modules/react-router-dom/index.js delete mode 100644 node_modules/react-router-dom/matchPath.js delete mode 100644 node_modules/react-router-dom/modules/BrowserRouter.js delete mode 100644 node_modules/react-router-dom/modules/HashRouter.js delete mode 100644 node_modules/react-router-dom/modules/Link.js delete mode 100644 node_modules/react-router-dom/modules/NavLink.js delete mode 100644 node_modules/react-router-dom/modules/index.js delete mode 100644 node_modules/react-router-dom/modules/utils/locationUtils.js delete mode 100644 node_modules/react-router-dom/package.json delete mode 100644 node_modules/react-router-dom/umd/react-router-dom.js delete mode 100644 node_modules/react-router-dom/umd/react-router-dom.js.map delete mode 100644 node_modules/react-router-dom/umd/react-router-dom.min.js delete mode 100644 node_modules/react-router-dom/umd/react-router-dom.min.js.map delete mode 100644 node_modules/react-router-dom/warnAboutDeprecatedCJSRequire.js delete mode 100644 node_modules/react-router-dom/withRouter.js delete mode 100644 node_modules/react-router/LICENSE delete mode 100644 node_modules/react-router/MemoryRouter.js delete mode 100644 node_modules/react-router/Prompt.js delete mode 100644 node_modules/react-router/README.md delete mode 100644 node_modules/react-router/Redirect.js delete mode 100644 node_modules/react-router/Route.js delete mode 100644 node_modules/react-router/Router.js delete mode 100644 node_modules/react-router/StaticRouter.js delete mode 100644 node_modules/react-router/Switch.js delete mode 100644 node_modules/react-router/cjs/react-router.js delete mode 100644 node_modules/react-router/cjs/react-router.js.map delete mode 100644 node_modules/react-router/cjs/react-router.min.js delete mode 100644 node_modules/react-router/cjs/react-router.min.js.map delete mode 100644 node_modules/react-router/es/MemoryRouter.js delete mode 100644 node_modules/react-router/es/Prompt.js delete mode 100644 node_modules/react-router/es/Redirect.js delete mode 100644 node_modules/react-router/es/Route.js delete mode 100644 node_modules/react-router/es/Router.js delete mode 100644 node_modules/react-router/es/StaticRouter.js delete mode 100644 node_modules/react-router/es/Switch.js delete mode 100644 node_modules/react-router/es/generatePath.js delete mode 100644 node_modules/react-router/es/matchPath.js delete mode 100644 node_modules/react-router/es/warnAboutDeprecatedESMImport.js delete mode 100644 node_modules/react-router/es/withRouter.js delete mode 100644 node_modules/react-router/esm/react-router.js delete mode 100644 node_modules/react-router/esm/react-router.js.map delete mode 100644 node_modules/react-router/generatePath.js delete mode 100644 node_modules/react-router/index.js delete mode 100644 node_modules/react-router/matchPath.js delete mode 100644 node_modules/react-router/modules/HistoryContext.js delete mode 100644 node_modules/react-router/modules/Lifecycle.js delete mode 100644 node_modules/react-router/modules/MemoryRouter.js delete mode 100644 node_modules/react-router/modules/Prompt.js delete mode 100644 node_modules/react-router/modules/Redirect.js delete mode 100644 node_modules/react-router/modules/Route.js delete mode 100644 node_modules/react-router/modules/Router.js delete mode 100644 node_modules/react-router/modules/RouterContext.js delete mode 100644 node_modules/react-router/modules/StaticRouter.js delete mode 100644 node_modules/react-router/modules/Switch.js delete mode 100644 node_modules/react-router/modules/createNameContext.js delete mode 100644 node_modules/react-router/modules/generatePath.js delete mode 100644 node_modules/react-router/modules/hooks.js delete mode 100644 node_modules/react-router/modules/index.js delete mode 100644 node_modules/react-router/modules/matchPath.js delete mode 100644 node_modules/react-router/modules/withRouter.js delete mode 100644 node_modules/react-router/package.json delete mode 100644 node_modules/react-router/umd/react-router.js delete mode 100644 node_modules/react-router/umd/react-router.js.map delete mode 100644 node_modules/react-router/umd/react-router.min.js delete mode 100644 node_modules/react-router/umd/react-router.min.js.map delete mode 100644 node_modules/react-router/warnAboutDeprecatedCJSRequire.js delete mode 100644 node_modules/react-router/withRouter.js delete mode 100644 node_modules/regenerator-runtime/LICENSE delete mode 100644 node_modules/regenerator-runtime/README.md delete mode 100644 node_modules/regenerator-runtime/package.json delete mode 100644 node_modules/regenerator-runtime/path.js delete mode 100644 node_modules/regenerator-runtime/runtime.js delete mode 100644 node_modules/resolve-pathname/LICENSE delete mode 100644 node_modules/resolve-pathname/README.md delete mode 100644 node_modules/resolve-pathname/cjs/resolve-pathname.js delete mode 100644 node_modules/resolve-pathname/cjs/resolve-pathname.min.js delete mode 100644 node_modules/resolve-pathname/esm/resolve-pathname.js delete mode 100644 node_modules/resolve-pathname/index.js delete mode 100644 node_modules/resolve-pathname/package.json delete mode 100644 node_modules/resolve-pathname/umd/resolve-pathname.js delete mode 100644 node_modules/resolve-pathname/umd/resolve-pathname.min.js delete mode 100644 node_modules/tiny-invariant/LICENSE delete mode 100644 node_modules/tiny-invariant/README.md delete mode 100644 node_modules/tiny-invariant/dist/tiny-invariant.cjs.js delete mode 100644 node_modules/tiny-invariant/dist/tiny-invariant.d.ts delete mode 100644 node_modules/tiny-invariant/dist/tiny-invariant.esm.js delete mode 100644 node_modules/tiny-invariant/dist/tiny-invariant.js delete mode 100644 node_modules/tiny-invariant/dist/tiny-invariant.min.js delete mode 100644 node_modules/tiny-invariant/package.json delete mode 100644 node_modules/tiny-invariant/src/tiny-invariant.flow.js delete mode 100644 node_modules/tiny-invariant/src/tiny-invariant.ts delete mode 100644 node_modules/tiny-warning/LICENSE delete mode 100644 node_modules/tiny-warning/README.md delete mode 100644 node_modules/tiny-warning/dist/tiny-warning.cjs.js delete mode 100644 node_modules/tiny-warning/dist/tiny-warning.cjs.js.flow delete mode 100644 node_modules/tiny-warning/dist/tiny-warning.esm.js delete mode 100644 node_modules/tiny-warning/dist/tiny-warning.js delete mode 100644 node_modules/tiny-warning/dist/tiny-warning.min.js delete mode 100644 node_modules/tiny-warning/package.json delete mode 100644 node_modules/tiny-warning/src/index.d.ts delete mode 100644 node_modules/tiny-warning/src/index.js delete mode 100644 node_modules/value-equal/LICENSE delete mode 100644 node_modules/value-equal/README.md delete mode 100644 node_modules/value-equal/cjs/value-equal.js delete mode 100644 node_modules/value-equal/cjs/value-equal.min.js delete mode 100644 node_modules/value-equal/esm/value-equal.js delete mode 100644 node_modules/value-equal/index.js delete mode 100644 node_modules/value-equal/package.json delete mode 100644 node_modules/value-equal/umd/value-equal.js delete mode 100644 node_modules/value-equal/umd/value-equal.min.js diff --git a/node_modules/.bin/loose-envify b/node_modules/.bin/loose-envify deleted file mode 100644 index bbdb1df..0000000 --- a/node_modules/.bin/loose-envify +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") - -case `uname` in - *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; -esac - -if [ -x "$basedir/node" ]; then - "$basedir/node" "$basedir/../loose-envify/cli.js" "$@" - ret=$? -else - node "$basedir/../loose-envify/cli.js" "$@" - ret=$? -fi -exit $ret diff --git a/node_modules/.bin/loose-envify.cmd b/node_modules/.bin/loose-envify.cmd deleted file mode 100644 index 37b575e..0000000 --- a/node_modules/.bin/loose-envify.cmd +++ /dev/null @@ -1,17 +0,0 @@ -@ECHO off -SETLOCAL -CALL :find_dp0 - -IF EXIST "%dp0%\node.exe" ( - SET "_prog=%dp0%\node.exe" -) ELSE ( - SET "_prog=node" - SET PATHEXT=%PATHEXT:;.JS;=;% -) - -"%_prog%" "%dp0%\..\loose-envify\cli.js" %* -ENDLOCAL -EXIT /b %errorlevel% -:find_dp0 -SET dp0=%~dp0 -EXIT /b diff --git a/node_modules/.bin/loose-envify.ps1 b/node_modules/.bin/loose-envify.ps1 deleted file mode 100644 index 7b96ac6..0000000 --- a/node_modules/.bin/loose-envify.ps1 +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -} -$ret=0 -if (Test-Path "$basedir/node$exe") { - & "$basedir/node$exe" "$basedir/../loose-envify/cli.js" $args - $ret=$LASTEXITCODE -} else { - & "node$exe" "$basedir/../loose-envify/cli.js" $args - $ret=$LASTEXITCODE -} -exit $ret diff --git a/node_modules/@babel/runtime/LICENSE b/node_modules/@babel/runtime/LICENSE deleted file mode 100644 index f31575e..0000000 --- a/node_modules/@babel/runtime/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -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. diff --git a/node_modules/@babel/runtime/README.md b/node_modules/@babel/runtime/README.md deleted file mode 100644 index 119c99d..0000000 --- a/node_modules/@babel/runtime/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# @babel/runtime - -> babel's modular runtime helpers - -See our website [@babel/runtime](https://babeljs.io/docs/en/babel-runtime) for more information. - -## Install - -Using npm: - -```sh -npm install --save @babel/runtime -``` - -or using yarn: - -```sh -yarn add @babel/runtime -``` diff --git a/node_modules/@babel/runtime/helpers/AsyncGenerator.js b/node_modules/@babel/runtime/helpers/AsyncGenerator.js deleted file mode 100644 index 8461956..0000000 --- a/node_modules/@babel/runtime/helpers/AsyncGenerator.js +++ /dev/null @@ -1,101 +0,0 @@ -var AwaitValue = require("./AwaitValue.js"); - -function AsyncGenerator(gen) { - var front, back; - - function send(key, arg) { - return new Promise(function (resolve, reject) { - var request = { - key: key, - arg: arg, - resolve: resolve, - reject: reject, - next: null - }; - - if (back) { - back = back.next = request; - } else { - front = back = request; - resume(key, arg); - } - }); - } - - function resume(key, arg) { - try { - var result = gen[key](arg); - var value = result.value; - var wrappedAwait = value instanceof AwaitValue; - Promise.resolve(wrappedAwait ? value.wrapped : value).then(function (arg) { - if (wrappedAwait) { - resume(key === "return" ? "return" : "next", arg); - return; - } - - settle(result.done ? "return" : "normal", arg); - }, function (err) { - resume("throw", err); - }); - } catch (err) { - settle("throw", err); - } - } - - function settle(type, value) { - switch (type) { - case "return": - front.resolve({ - value: value, - done: true - }); - break; - - case "throw": - front.reject(value); - break; - - default: - front.resolve({ - value: value, - done: false - }); - break; - } - - front = front.next; - - if (front) { - resume(front.key, front.arg); - } else { - back = null; - } - } - - this._invoke = send; - - if (typeof gen["return"] !== "function") { - this["return"] = undefined; - } -} - -if (typeof Symbol === "function" && Symbol.asyncIterator) { - AsyncGenerator.prototype[Symbol.asyncIterator] = function () { - return this; - }; -} - -AsyncGenerator.prototype.next = function (arg) { - return this._invoke("next", arg); -}; - -AsyncGenerator.prototype["throw"] = function (arg) { - return this._invoke("throw", arg); -}; - -AsyncGenerator.prototype["return"] = function (arg) { - return this._invoke("return", arg); -}; - -module.exports = AsyncGenerator; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/AwaitValue.js b/node_modules/@babel/runtime/helpers/AwaitValue.js deleted file mode 100644 index d36df6e..0000000 --- a/node_modules/@babel/runtime/helpers/AwaitValue.js +++ /dev/null @@ -1,6 +0,0 @@ -function _AwaitValue(value) { - this.wrapped = value; -} - -module.exports = _AwaitValue; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/applyDecoratedDescriptor.js b/node_modules/@babel/runtime/helpers/applyDecoratedDescriptor.js deleted file mode 100644 index feaeab8..0000000 --- a/node_modules/@babel/runtime/helpers/applyDecoratedDescriptor.js +++ /dev/null @@ -1,31 +0,0 @@ -function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { - var desc = {}; - Object.keys(descriptor).forEach(function (key) { - desc[key] = descriptor[key]; - }); - desc.enumerable = !!desc.enumerable; - desc.configurable = !!desc.configurable; - - if ('value' in desc || desc.initializer) { - desc.writable = true; - } - - desc = decorators.slice().reverse().reduce(function (desc, decorator) { - return decorator(target, property, desc) || desc; - }, desc); - - if (context && desc.initializer !== void 0) { - desc.value = desc.initializer ? desc.initializer.call(context) : void 0; - desc.initializer = undefined; - } - - if (desc.initializer === void 0) { - Object.defineProperty(target, property, desc); - desc = null; - } - - return desc; -} - -module.exports = _applyDecoratedDescriptor; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/arrayLikeToArray.js b/node_modules/@babel/runtime/helpers/arrayLikeToArray.js deleted file mode 100644 index a459c8e..0000000 --- a/node_modules/@babel/runtime/helpers/arrayLikeToArray.js +++ /dev/null @@ -1,12 +0,0 @@ -function _arrayLikeToArray(arr, len) { - if (len == null || len > arr.length) len = arr.length; - - for (var i = 0, arr2 = new Array(len); i < len; i++) { - arr2[i] = arr[i]; - } - - return arr2; -} - -module.exports = _arrayLikeToArray; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/arrayWithHoles.js b/node_modules/@babel/runtime/helpers/arrayWithHoles.js deleted file mode 100644 index 9a36e2a..0000000 --- a/node_modules/@babel/runtime/helpers/arrayWithHoles.js +++ /dev/null @@ -1,6 +0,0 @@ -function _arrayWithHoles(arr) { - if (Array.isArray(arr)) return arr; -} - -module.exports = _arrayWithHoles; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js b/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js deleted file mode 100644 index aac913f..0000000 --- a/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js +++ /dev/null @@ -1,8 +0,0 @@ -var arrayLikeToArray = require("./arrayLikeToArray.js"); - -function _arrayWithoutHoles(arr) { - if (Array.isArray(arr)) return arrayLikeToArray(arr); -} - -module.exports = _arrayWithoutHoles; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/assertThisInitialized.js b/node_modules/@babel/runtime/helpers/assertThisInitialized.js deleted file mode 100644 index 352e1e6..0000000 --- a/node_modules/@babel/runtime/helpers/assertThisInitialized.js +++ /dev/null @@ -1,10 +0,0 @@ -function _assertThisInitialized(self) { - if (self === void 0) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - } - - return self; -} - -module.exports = _assertThisInitialized; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/asyncGeneratorDelegate.js b/node_modules/@babel/runtime/helpers/asyncGeneratorDelegate.js deleted file mode 100644 index 755185c..0000000 --- a/node_modules/@babel/runtime/helpers/asyncGeneratorDelegate.js +++ /dev/null @@ -1,59 +0,0 @@ -function _asyncGeneratorDelegate(inner, awaitWrap) { - var iter = {}, - waiting = false; - - function pump(key, value) { - waiting = true; - value = new Promise(function (resolve) { - resolve(inner[key](value)); - }); - return { - done: false, - value: awaitWrap(value) - }; - } - - ; - - if (typeof Symbol === "function" && Symbol.iterator) { - iter[Symbol.iterator] = function () { - return this; - }; - } - - iter.next = function (value) { - if (waiting) { - waiting = false; - return value; - } - - return pump("next", value); - }; - - if (typeof inner["throw"] === "function") { - iter["throw"] = function (value) { - if (waiting) { - waiting = false; - throw value; - } - - return pump("throw", value); - }; - } - - if (typeof inner["return"] === "function") { - iter["return"] = function (value) { - if (waiting) { - waiting = false; - return value; - } - - return pump("return", value); - }; - } - - return iter; -} - -module.exports = _asyncGeneratorDelegate; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/asyncIterator.js b/node_modules/@babel/runtime/helpers/asyncIterator.js deleted file mode 100644 index 95107f4..0000000 --- a/node_modules/@babel/runtime/helpers/asyncIterator.js +++ /dev/null @@ -1,20 +0,0 @@ -function _asyncIterator(iterable) { - var method; - - if (typeof Symbol !== "undefined") { - if (Symbol.asyncIterator) { - method = iterable[Symbol.asyncIterator]; - if (method != null) return method.call(iterable); - } - - if (Symbol.iterator) { - method = iterable[Symbol.iterator]; - if (method != null) return method.call(iterable); - } - } - - throw new TypeError("Object is not async iterable"); -} - -module.exports = _asyncIterator; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/asyncToGenerator.js b/node_modules/@babel/runtime/helpers/asyncToGenerator.js deleted file mode 100644 index ec5daa8..0000000 --- a/node_modules/@babel/runtime/helpers/asyncToGenerator.js +++ /dev/null @@ -1,38 +0,0 @@ -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { - try { - var info = gen[key](arg); - var value = info.value; - } catch (error) { - reject(error); - return; - } - - if (info.done) { - resolve(value); - } else { - Promise.resolve(value).then(_next, _throw); - } -} - -function _asyncToGenerator(fn) { - return function () { - var self = this, - args = arguments; - return new Promise(function (resolve, reject) { - var gen = fn.apply(self, args); - - function _next(value) { - asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); - } - - function _throw(err) { - asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); - } - - _next(undefined); - }); - }; -} - -module.exports = _asyncToGenerator; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/awaitAsyncGenerator.js b/node_modules/@babel/runtime/helpers/awaitAsyncGenerator.js deleted file mode 100644 index c338fee..0000000 --- a/node_modules/@babel/runtime/helpers/awaitAsyncGenerator.js +++ /dev/null @@ -1,8 +0,0 @@ -var AwaitValue = require("./AwaitValue.js"); - -function _awaitAsyncGenerator(value) { - return new AwaitValue(value); -} - -module.exports = _awaitAsyncGenerator; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/classApplyDescriptorDestructureSet.js b/node_modules/@babel/runtime/helpers/classApplyDescriptorDestructureSet.js deleted file mode 100644 index 521c1e0..0000000 --- a/node_modules/@babel/runtime/helpers/classApplyDescriptorDestructureSet.js +++ /dev/null @@ -1,23 +0,0 @@ -function _classApplyDescriptorDestructureSet(receiver, descriptor) { - if (descriptor.set) { - if (!("__destrObj" in descriptor)) { - descriptor.__destrObj = { - set value(v) { - descriptor.set.call(receiver, v); - } - - }; - } - - return descriptor.__destrObj; - } else { - if (!descriptor.writable) { - throw new TypeError("attempted to set read only private field"); - } - - return descriptor; - } -} - -module.exports = _classApplyDescriptorDestructureSet; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/classApplyDescriptorGet.js b/node_modules/@babel/runtime/helpers/classApplyDescriptorGet.js deleted file mode 100644 index f750596..0000000 --- a/node_modules/@babel/runtime/helpers/classApplyDescriptorGet.js +++ /dev/null @@ -1,10 +0,0 @@ -function _classApplyDescriptorGet(receiver, descriptor) { - if (descriptor.get) { - return descriptor.get.call(receiver); - } - - return descriptor.value; -} - -module.exports = _classApplyDescriptorGet; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/classApplyDescriptorSet.js b/node_modules/@babel/runtime/helpers/classApplyDescriptorSet.js deleted file mode 100644 index 997b264..0000000 --- a/node_modules/@babel/runtime/helpers/classApplyDescriptorSet.js +++ /dev/null @@ -1,14 +0,0 @@ -function _classApplyDescriptorSet(receiver, descriptor, value) { - if (descriptor.set) { - descriptor.set.call(receiver, value); - } else { - if (!descriptor.writable) { - throw new TypeError("attempted to set read only private field"); - } - - descriptor.value = value; - } -} - -module.exports = _classApplyDescriptorSet; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/classCallCheck.js b/node_modules/@babel/runtime/helpers/classCallCheck.js deleted file mode 100644 index 026da41..0000000 --- a/node_modules/@babel/runtime/helpers/classCallCheck.js +++ /dev/null @@ -1,8 +0,0 @@ -function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } -} - -module.exports = _classCallCheck; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/classCheckPrivateStaticAccess.js b/node_modules/@babel/runtime/helpers/classCheckPrivateStaticAccess.js deleted file mode 100644 index 67373aa..0000000 --- a/node_modules/@babel/runtime/helpers/classCheckPrivateStaticAccess.js +++ /dev/null @@ -1,8 +0,0 @@ -function _classCheckPrivateStaticAccess(receiver, classConstructor) { - if (receiver !== classConstructor) { - throw new TypeError("Private static access of wrong provenance"); - } -} - -module.exports = _classCheckPrivateStaticAccess; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/classCheckPrivateStaticFieldDescriptor.js b/node_modules/@babel/runtime/helpers/classCheckPrivateStaticFieldDescriptor.js deleted file mode 100644 index 3b93472..0000000 --- a/node_modules/@babel/runtime/helpers/classCheckPrivateStaticFieldDescriptor.js +++ /dev/null @@ -1,8 +0,0 @@ -function _classCheckPrivateStaticFieldDescriptor(descriptor, action) { - if (descriptor === undefined) { - throw new TypeError("attempted to " + action + " private static field before its declaration"); - } -} - -module.exports = _classCheckPrivateStaticFieldDescriptor; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/classExtractFieldDescriptor.js b/node_modules/@babel/runtime/helpers/classExtractFieldDescriptor.js deleted file mode 100644 index aaaac8c..0000000 --- a/node_modules/@babel/runtime/helpers/classExtractFieldDescriptor.js +++ /dev/null @@ -1,10 +0,0 @@ -function _classExtractFieldDescriptor(receiver, privateMap, action) { - if (!privateMap.has(receiver)) { - throw new TypeError("attempted to " + action + " private field on non-instance"); - } - - return privateMap.get(receiver); -} - -module.exports = _classExtractFieldDescriptor; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/classNameTDZError.js b/node_modules/@babel/runtime/helpers/classNameTDZError.js deleted file mode 100644 index bf740fa..0000000 --- a/node_modules/@babel/runtime/helpers/classNameTDZError.js +++ /dev/null @@ -1,6 +0,0 @@ -function _classNameTDZError(name) { - throw new Error("Class \"" + name + "\" cannot be referenced in computed property keys."); -} - -module.exports = _classNameTDZError; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/classPrivateFieldDestructureSet.js b/node_modules/@babel/runtime/helpers/classPrivateFieldDestructureSet.js deleted file mode 100644 index 50b9fb0..0000000 --- a/node_modules/@babel/runtime/helpers/classPrivateFieldDestructureSet.js +++ /dev/null @@ -1,11 +0,0 @@ -var classApplyDescriptorDestructureSet = require("./classApplyDescriptorDestructureSet.js"); - -var classExtractFieldDescriptor = require("./classExtractFieldDescriptor.js"); - -function _classPrivateFieldDestructureSet(receiver, privateMap) { - var descriptor = classExtractFieldDescriptor(receiver, privateMap, "set"); - return classApplyDescriptorDestructureSet(receiver, descriptor); -} - -module.exports = _classPrivateFieldDestructureSet; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/classPrivateFieldGet.js b/node_modules/@babel/runtime/helpers/classPrivateFieldGet.js deleted file mode 100644 index df55969..0000000 --- a/node_modules/@babel/runtime/helpers/classPrivateFieldGet.js +++ /dev/null @@ -1,11 +0,0 @@ -var classApplyDescriptorGet = require("./classApplyDescriptorGet.js"); - -var classExtractFieldDescriptor = require("./classExtractFieldDescriptor.js"); - -function _classPrivateFieldGet(receiver, privateMap) { - var descriptor = classExtractFieldDescriptor(receiver, privateMap, "get"); - return classApplyDescriptorGet(receiver, descriptor); -} - -module.exports = _classPrivateFieldGet; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/classPrivateFieldLooseBase.js b/node_modules/@babel/runtime/helpers/classPrivateFieldLooseBase.js deleted file mode 100644 index 3acdb7b..0000000 --- a/node_modules/@babel/runtime/helpers/classPrivateFieldLooseBase.js +++ /dev/null @@ -1,10 +0,0 @@ -function _classPrivateFieldBase(receiver, privateKey) { - if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { - throw new TypeError("attempted to use private field on non-instance"); - } - - return receiver; -} - -module.exports = _classPrivateFieldBase; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/classPrivateFieldLooseKey.js b/node_modules/@babel/runtime/helpers/classPrivateFieldLooseKey.js deleted file mode 100644 index 3c0c552..0000000 --- a/node_modules/@babel/runtime/helpers/classPrivateFieldLooseKey.js +++ /dev/null @@ -1,8 +0,0 @@ -var id = 0; - -function _classPrivateFieldKey(name) { - return "__private_" + id++ + "_" + name; -} - -module.exports = _classPrivateFieldKey; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/classPrivateFieldSet.js b/node_modules/@babel/runtime/helpers/classPrivateFieldSet.js deleted file mode 100644 index d4a59b0..0000000 --- a/node_modules/@babel/runtime/helpers/classPrivateFieldSet.js +++ /dev/null @@ -1,12 +0,0 @@ -var classApplyDescriptorSet = require("./classApplyDescriptorSet.js"); - -var classExtractFieldDescriptor = require("./classExtractFieldDescriptor.js"); - -function _classPrivateFieldSet(receiver, privateMap, value) { - var descriptor = classExtractFieldDescriptor(receiver, privateMap, "set"); - classApplyDescriptorSet(receiver, descriptor, value); - return value; -} - -module.exports = _classPrivateFieldSet; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/classPrivateMethodGet.js b/node_modules/@babel/runtime/helpers/classPrivateMethodGet.js deleted file mode 100644 index d2f8ab1..0000000 --- a/node_modules/@babel/runtime/helpers/classPrivateMethodGet.js +++ /dev/null @@ -1,10 +0,0 @@ -function _classPrivateMethodGet(receiver, privateSet, fn) { - if (!privateSet.has(receiver)) { - throw new TypeError("attempted to get private field on non-instance"); - } - - return fn; -} - -module.exports = _classPrivateMethodGet; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/classPrivateMethodSet.js b/node_modules/@babel/runtime/helpers/classPrivateMethodSet.js deleted file mode 100644 index f500d16..0000000 --- a/node_modules/@babel/runtime/helpers/classPrivateMethodSet.js +++ /dev/null @@ -1,6 +0,0 @@ -function _classPrivateMethodSet() { - throw new TypeError("attempted to reassign private method"); -} - -module.exports = _classPrivateMethodSet; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/classStaticPrivateFieldDestructureSet.js b/node_modules/@babel/runtime/helpers/classStaticPrivateFieldDestructureSet.js deleted file mode 100644 index 57e2c7f..0000000 --- a/node_modules/@babel/runtime/helpers/classStaticPrivateFieldDestructureSet.js +++ /dev/null @@ -1,14 +0,0 @@ -var classApplyDescriptorDestructureSet = require("./classApplyDescriptorDestructureSet.js"); - -var classCheckPrivateStaticAccess = require("./classCheckPrivateStaticAccess.js"); - -var classCheckPrivateStaticFieldDescriptor = require("./classCheckPrivateStaticFieldDescriptor.js"); - -function _classStaticPrivateFieldDestructureSet(receiver, classConstructor, descriptor) { - classCheckPrivateStaticAccess(receiver, classConstructor); - classCheckPrivateStaticFieldDescriptor(descriptor, "set"); - return classApplyDescriptorDestructureSet(receiver, descriptor); -} - -module.exports = _classStaticPrivateFieldDestructureSet; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/classStaticPrivateFieldSpecGet.js b/node_modules/@babel/runtime/helpers/classStaticPrivateFieldSpecGet.js deleted file mode 100644 index 136c1f6..0000000 --- a/node_modules/@babel/runtime/helpers/classStaticPrivateFieldSpecGet.js +++ /dev/null @@ -1,14 +0,0 @@ -var classApplyDescriptorGet = require("./classApplyDescriptorGet.js"); - -var classCheckPrivateStaticAccess = require("./classCheckPrivateStaticAccess.js"); - -var classCheckPrivateStaticFieldDescriptor = require("./classCheckPrivateStaticFieldDescriptor.js"); - -function _classStaticPrivateFieldSpecGet(receiver, classConstructor, descriptor) { - classCheckPrivateStaticAccess(receiver, classConstructor); - classCheckPrivateStaticFieldDescriptor(descriptor, "get"); - return classApplyDescriptorGet(receiver, descriptor); -} - -module.exports = _classStaticPrivateFieldSpecGet; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/classStaticPrivateFieldSpecSet.js b/node_modules/@babel/runtime/helpers/classStaticPrivateFieldSpecSet.js deleted file mode 100644 index e6ecfa4..0000000 --- a/node_modules/@babel/runtime/helpers/classStaticPrivateFieldSpecSet.js +++ /dev/null @@ -1,15 +0,0 @@ -var classApplyDescriptorSet = require("./classApplyDescriptorSet.js"); - -var classCheckPrivateStaticAccess = require("./classCheckPrivateStaticAccess.js"); - -var classCheckPrivateStaticFieldDescriptor = require("./classCheckPrivateStaticFieldDescriptor.js"); - -function _classStaticPrivateFieldSpecSet(receiver, classConstructor, descriptor, value) { - classCheckPrivateStaticAccess(receiver, classConstructor); - classCheckPrivateStaticFieldDescriptor(descriptor, "set"); - classApplyDescriptorSet(receiver, descriptor, value); - return value; -} - -module.exports = _classStaticPrivateFieldSpecSet; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/classStaticPrivateMethodGet.js b/node_modules/@babel/runtime/helpers/classStaticPrivateMethodGet.js deleted file mode 100644 index 5bc41fc..0000000 --- a/node_modules/@babel/runtime/helpers/classStaticPrivateMethodGet.js +++ /dev/null @@ -1,9 +0,0 @@ -var classCheckPrivateStaticAccess = require("./classCheckPrivateStaticAccess.js"); - -function _classStaticPrivateMethodGet(receiver, classConstructor, method) { - classCheckPrivateStaticAccess(receiver, classConstructor); - return method; -} - -module.exports = _classStaticPrivateMethodGet; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/classStaticPrivateMethodSet.js b/node_modules/@babel/runtime/helpers/classStaticPrivateMethodSet.js deleted file mode 100644 index 06cfcc1..0000000 --- a/node_modules/@babel/runtime/helpers/classStaticPrivateMethodSet.js +++ /dev/null @@ -1,6 +0,0 @@ -function _classStaticPrivateMethodSet() { - throw new TypeError("attempted to set read only static private field"); -} - -module.exports = _classStaticPrivateMethodSet; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/construct.js b/node_modules/@babel/runtime/helpers/construct.js deleted file mode 100644 index 108b39a..0000000 --- a/node_modules/@babel/runtime/helpers/construct.js +++ /dev/null @@ -1,26 +0,0 @@ -var setPrototypeOf = require("./setPrototypeOf.js"); - -var isNativeReflectConstruct = require("./isNativeReflectConstruct.js"); - -function _construct(Parent, args, Class) { - if (isNativeReflectConstruct()) { - module.exports = _construct = Reflect.construct; - module.exports["default"] = module.exports, module.exports.__esModule = true; - } else { - module.exports = _construct = function _construct(Parent, args, Class) { - var a = [null]; - a.push.apply(a, args); - var Constructor = Function.bind.apply(Parent, a); - var instance = new Constructor(); - if (Class) setPrototypeOf(instance, Class.prototype); - return instance; - }; - - module.exports["default"] = module.exports, module.exports.__esModule = true; - } - - return _construct.apply(null, arguments); -} - -module.exports = _construct; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/createClass.js b/node_modules/@babel/runtime/helpers/createClass.js deleted file mode 100644 index 293bd61..0000000 --- a/node_modules/@babel/runtime/helpers/createClass.js +++ /dev/null @@ -1,18 +0,0 @@ -function _defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, descriptor.key, descriptor); - } -} - -function _createClass(Constructor, protoProps, staticProps) { - if (protoProps) _defineProperties(Constructor.prototype, protoProps); - if (staticProps) _defineProperties(Constructor, staticProps); - return Constructor; -} - -module.exports = _createClass; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js b/node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js deleted file mode 100644 index 962d94d..0000000 --- a/node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js +++ /dev/null @@ -1,61 +0,0 @@ -var unsupportedIterableToArray = require("./unsupportedIterableToArray.js"); - -function _createForOfIteratorHelper(o, allowArrayLike) { - var it; - - if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { - if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { - if (it) o = it; - var i = 0; - - var F = function F() {}; - - return { - s: F, - n: function n() { - if (i >= o.length) return { - done: true - }; - return { - done: false, - value: o[i++] - }; - }, - e: function e(_e) { - throw _e; - }, - f: F - }; - } - - throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); - } - - var normalCompletion = true, - didErr = false, - err; - return { - s: function s() { - it = o[Symbol.iterator](); - }, - n: function n() { - var step = it.next(); - normalCompletion = step.done; - return step; - }, - e: function e(_e2) { - didErr = true; - err = _e2; - }, - f: function f() { - try { - if (!normalCompletion && it["return"] != null) it["return"](); - } finally { - if (didErr) throw err; - } - } - }; -} - -module.exports = _createForOfIteratorHelper; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/createForOfIteratorHelperLoose.js b/node_modules/@babel/runtime/helpers/createForOfIteratorHelperLoose.js deleted file mode 100644 index 06bb61b..0000000 --- a/node_modules/@babel/runtime/helpers/createForOfIteratorHelperLoose.js +++ /dev/null @@ -1,29 +0,0 @@ -var unsupportedIterableToArray = require("./unsupportedIterableToArray.js"); - -function _createForOfIteratorHelperLoose(o, allowArrayLike) { - var it; - - if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { - if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { - if (it) o = it; - var i = 0; - return function () { - if (i >= o.length) return { - done: true - }; - return { - done: false, - value: o[i++] - }; - }; - } - - throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); - } - - it = o[Symbol.iterator](); - return it.next.bind(it); -} - -module.exports = _createForOfIteratorHelperLoose; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/createSuper.js b/node_modules/@babel/runtime/helpers/createSuper.js deleted file mode 100644 index 0acdd51..0000000 --- a/node_modules/@babel/runtime/helpers/createSuper.js +++ /dev/null @@ -1,25 +0,0 @@ -var getPrototypeOf = require("./getPrototypeOf.js"); - -var isNativeReflectConstruct = require("./isNativeReflectConstruct.js"); - -var possibleConstructorReturn = require("./possibleConstructorReturn.js"); - -function _createSuper(Derived) { - var hasNativeReflectConstruct = isNativeReflectConstruct(); - return function _createSuperInternal() { - var Super = getPrototypeOf(Derived), - result; - - if (hasNativeReflectConstruct) { - var NewTarget = getPrototypeOf(this).constructor; - result = Reflect.construct(Super, arguments, NewTarget); - } else { - result = Super.apply(this, arguments); - } - - return possibleConstructorReturn(this, result); - }; -} - -module.exports = _createSuper; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/decorate.js b/node_modules/@babel/runtime/helpers/decorate.js deleted file mode 100644 index 80d1751..0000000 --- a/node_modules/@babel/runtime/helpers/decorate.js +++ /dev/null @@ -1,401 +0,0 @@ -var toArray = require("./toArray.js"); - -var toPropertyKey = require("./toPropertyKey.js"); - -function _decorate(decorators, factory, superClass, mixins) { - var api = _getDecoratorsApi(); - - if (mixins) { - for (var i = 0; i < mixins.length; i++) { - api = mixins[i](api); - } - } - - var r = factory(function initialize(O) { - api.initializeInstanceElements(O, decorated.elements); - }, superClass); - var decorated = api.decorateClass(_coalesceClassElements(r.d.map(_createElementDescriptor)), decorators); - api.initializeClassElements(r.F, decorated.elements); - return api.runClassFinishers(r.F, decorated.finishers); -} - -function _getDecoratorsApi() { - _getDecoratorsApi = function _getDecoratorsApi() { - return api; - }; - - var api = { - elementsDefinitionOrder: [["method"], ["field"]], - initializeInstanceElements: function initializeInstanceElements(O, elements) { - ["method", "field"].forEach(function (kind) { - elements.forEach(function (element) { - if (element.kind === kind && element.placement === "own") { - this.defineClassElement(O, element); - } - }, this); - }, this); - }, - initializeClassElements: function initializeClassElements(F, elements) { - var proto = F.prototype; - ["method", "field"].forEach(function (kind) { - elements.forEach(function (element) { - var placement = element.placement; - - if (element.kind === kind && (placement === "static" || placement === "prototype")) { - var receiver = placement === "static" ? F : proto; - this.defineClassElement(receiver, element); - } - }, this); - }, this); - }, - defineClassElement: function defineClassElement(receiver, element) { - var descriptor = element.descriptor; - - if (element.kind === "field") { - var initializer = element.initializer; - descriptor = { - enumerable: descriptor.enumerable, - writable: descriptor.writable, - configurable: descriptor.configurable, - value: initializer === void 0 ? void 0 : initializer.call(receiver) - }; - } - - Object.defineProperty(receiver, element.key, descriptor); - }, - decorateClass: function decorateClass(elements, decorators) { - var newElements = []; - var finishers = []; - var placements = { - "static": [], - prototype: [], - own: [] - }; - elements.forEach(function (element) { - this.addElementPlacement(element, placements); - }, this); - elements.forEach(function (element) { - if (!_hasDecorators(element)) return newElements.push(element); - var elementFinishersExtras = this.decorateElement(element, placements); - newElements.push(elementFinishersExtras.element); - newElements.push.apply(newElements, elementFinishersExtras.extras); - finishers.push.apply(finishers, elementFinishersExtras.finishers); - }, this); - - if (!decorators) { - return { - elements: newElements, - finishers: finishers - }; - } - - var result = this.decorateConstructor(newElements, decorators); - finishers.push.apply(finishers, result.finishers); - result.finishers = finishers; - return result; - }, - addElementPlacement: function addElementPlacement(element, placements, silent) { - var keys = placements[element.placement]; - - if (!silent && keys.indexOf(element.key) !== -1) { - throw new TypeError("Duplicated element (" + element.key + ")"); - } - - keys.push(element.key); - }, - decorateElement: function decorateElement(element, placements) { - var extras = []; - var finishers = []; - - for (var decorators = element.decorators, i = decorators.length - 1; i >= 0; i--) { - var keys = placements[element.placement]; - keys.splice(keys.indexOf(element.key), 1); - var elementObject = this.fromElementDescriptor(element); - var elementFinisherExtras = this.toElementFinisherExtras((0, decorators[i])(elementObject) || elementObject); - element = elementFinisherExtras.element; - this.addElementPlacement(element, placements); - - if (elementFinisherExtras.finisher) { - finishers.push(elementFinisherExtras.finisher); - } - - var newExtras = elementFinisherExtras.extras; - - if (newExtras) { - for (var j = 0; j < newExtras.length; j++) { - this.addElementPlacement(newExtras[j], placements); - } - - extras.push.apply(extras, newExtras); - } - } - - return { - element: element, - finishers: finishers, - extras: extras - }; - }, - decorateConstructor: function decorateConstructor(elements, decorators) { - var finishers = []; - - for (var i = decorators.length - 1; i >= 0; i--) { - var obj = this.fromClassDescriptor(elements); - var elementsAndFinisher = this.toClassDescriptor((0, decorators[i])(obj) || obj); - - if (elementsAndFinisher.finisher !== undefined) { - finishers.push(elementsAndFinisher.finisher); - } - - if (elementsAndFinisher.elements !== undefined) { - elements = elementsAndFinisher.elements; - - for (var j = 0; j < elements.length - 1; j++) { - for (var k = j + 1; k < elements.length; k++) { - if (elements[j].key === elements[k].key && elements[j].placement === elements[k].placement) { - throw new TypeError("Duplicated element (" + elements[j].key + ")"); - } - } - } - } - } - - return { - elements: elements, - finishers: finishers - }; - }, - fromElementDescriptor: function fromElementDescriptor(element) { - var obj = { - kind: element.kind, - key: element.key, - placement: element.placement, - descriptor: element.descriptor - }; - var desc = { - value: "Descriptor", - configurable: true - }; - Object.defineProperty(obj, Symbol.toStringTag, desc); - if (element.kind === "field") obj.initializer = element.initializer; - return obj; - }, - toElementDescriptors: function toElementDescriptors(elementObjects) { - if (elementObjects === undefined) return; - return toArray(elementObjects).map(function (elementObject) { - var element = this.toElementDescriptor(elementObject); - this.disallowProperty(elementObject, "finisher", "An element descriptor"); - this.disallowProperty(elementObject, "extras", "An element descriptor"); - return element; - }, this); - }, - toElementDescriptor: function toElementDescriptor(elementObject) { - var kind = String(elementObject.kind); - - if (kind !== "method" && kind !== "field") { - throw new TypeError('An element descriptor\'s .kind property must be either "method" or' + ' "field", but a decorator created an element descriptor with' + ' .kind "' + kind + '"'); - } - - var key = toPropertyKey(elementObject.key); - var placement = String(elementObject.placement); - - if (placement !== "static" && placement !== "prototype" && placement !== "own") { - throw new TypeError('An element descriptor\'s .placement property must be one of "static",' + ' "prototype" or "own", but a decorator created an element descriptor' + ' with .placement "' + placement + '"'); - } - - var descriptor = elementObject.descriptor; - this.disallowProperty(elementObject, "elements", "An element descriptor"); - var element = { - kind: kind, - key: key, - placement: placement, - descriptor: Object.assign({}, descriptor) - }; - - if (kind !== "field") { - this.disallowProperty(elementObject, "initializer", "A method descriptor"); - } else { - this.disallowProperty(descriptor, "get", "The property descriptor of a field descriptor"); - this.disallowProperty(descriptor, "set", "The property descriptor of a field descriptor"); - this.disallowProperty(descriptor, "value", "The property descriptor of a field descriptor"); - element.initializer = elementObject.initializer; - } - - return element; - }, - toElementFinisherExtras: function toElementFinisherExtras(elementObject) { - var element = this.toElementDescriptor(elementObject); - - var finisher = _optionalCallableProperty(elementObject, "finisher"); - - var extras = this.toElementDescriptors(elementObject.extras); - return { - element: element, - finisher: finisher, - extras: extras - }; - }, - fromClassDescriptor: function fromClassDescriptor(elements) { - var obj = { - kind: "class", - elements: elements.map(this.fromElementDescriptor, this) - }; - var desc = { - value: "Descriptor", - configurable: true - }; - Object.defineProperty(obj, Symbol.toStringTag, desc); - return obj; - }, - toClassDescriptor: function toClassDescriptor(obj) { - var kind = String(obj.kind); - - if (kind !== "class") { - throw new TypeError('A class descriptor\'s .kind property must be "class", but a decorator' + ' created a class descriptor with .kind "' + kind + '"'); - } - - this.disallowProperty(obj, "key", "A class descriptor"); - this.disallowProperty(obj, "placement", "A class descriptor"); - this.disallowProperty(obj, "descriptor", "A class descriptor"); - this.disallowProperty(obj, "initializer", "A class descriptor"); - this.disallowProperty(obj, "extras", "A class descriptor"); - - var finisher = _optionalCallableProperty(obj, "finisher"); - - var elements = this.toElementDescriptors(obj.elements); - return { - elements: elements, - finisher: finisher - }; - }, - runClassFinishers: function runClassFinishers(constructor, finishers) { - for (var i = 0; i < finishers.length; i++) { - var newConstructor = (0, finishers[i])(constructor); - - if (newConstructor !== undefined) { - if (typeof newConstructor !== "function") { - throw new TypeError("Finishers must return a constructor."); - } - - constructor = newConstructor; - } - } - - return constructor; - }, - disallowProperty: function disallowProperty(obj, name, objectType) { - if (obj[name] !== undefined) { - throw new TypeError(objectType + " can't have a ." + name + " property."); - } - } - }; - return api; -} - -function _createElementDescriptor(def) { - var key = toPropertyKey(def.key); - var descriptor; - - if (def.kind === "method") { - descriptor = { - value: def.value, - writable: true, - configurable: true, - enumerable: false - }; - } else if (def.kind === "get") { - descriptor = { - get: def.value, - configurable: true, - enumerable: false - }; - } else if (def.kind === "set") { - descriptor = { - set: def.value, - configurable: true, - enumerable: false - }; - } else if (def.kind === "field") { - descriptor = { - configurable: true, - writable: true, - enumerable: true - }; - } - - var element = { - kind: def.kind === "field" ? "field" : "method", - key: key, - placement: def["static"] ? "static" : def.kind === "field" ? "own" : "prototype", - descriptor: descriptor - }; - if (def.decorators) element.decorators = def.decorators; - if (def.kind === "field") element.initializer = def.value; - return element; -} - -function _coalesceGetterSetter(element, other) { - if (element.descriptor.get !== undefined) { - other.descriptor.get = element.descriptor.get; - } else { - other.descriptor.set = element.descriptor.set; - } -} - -function _coalesceClassElements(elements) { - var newElements = []; - - var isSameElement = function isSameElement(other) { - return other.kind === "method" && other.key === element.key && other.placement === element.placement; - }; - - for (var i = 0; i < elements.length; i++) { - var element = elements[i]; - var other; - - if (element.kind === "method" && (other = newElements.find(isSameElement))) { - if (_isDataDescriptor(element.descriptor) || _isDataDescriptor(other.descriptor)) { - if (_hasDecorators(element) || _hasDecorators(other)) { - throw new ReferenceError("Duplicated methods (" + element.key + ") can't be decorated."); - } - - other.descriptor = element.descriptor; - } else { - if (_hasDecorators(element)) { - if (_hasDecorators(other)) { - throw new ReferenceError("Decorators can't be placed on different accessors with for " + "the same property (" + element.key + ")."); - } - - other.decorators = element.decorators; - } - - _coalesceGetterSetter(element, other); - } - } else { - newElements.push(element); - } - } - - return newElements; -} - -function _hasDecorators(element) { - return element.decorators && element.decorators.length; -} - -function _isDataDescriptor(desc) { - return desc !== undefined && !(desc.value === undefined && desc.writable === undefined); -} - -function _optionalCallableProperty(obj, name) { - var value = obj[name]; - - if (value !== undefined && typeof value !== "function") { - throw new TypeError("Expected '" + name + "' to be a function"); - } - - return value; -} - -module.exports = _decorate; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/defaults.js b/node_modules/@babel/runtime/helpers/defaults.js deleted file mode 100644 index 576c5a4..0000000 --- a/node_modules/@babel/runtime/helpers/defaults.js +++ /dev/null @@ -1,17 +0,0 @@ -function _defaults(obj, defaults) { - var keys = Object.getOwnPropertyNames(defaults); - - for (var i = 0; i < keys.length; i++) { - var key = keys[i]; - var value = Object.getOwnPropertyDescriptor(defaults, key); - - if (value && value.configurable && obj[key] === undefined) { - Object.defineProperty(obj, key, value); - } - } - - return obj; -} - -module.exports = _defaults; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/defineEnumerableProperties.js b/node_modules/@babel/runtime/helpers/defineEnumerableProperties.js deleted file mode 100644 index 4fe90c3..0000000 --- a/node_modules/@babel/runtime/helpers/defineEnumerableProperties.js +++ /dev/null @@ -1,25 +0,0 @@ -function _defineEnumerableProperties(obj, descs) { - for (var key in descs) { - var desc = descs[key]; - desc.configurable = desc.enumerable = true; - if ("value" in desc) desc.writable = true; - Object.defineProperty(obj, key, desc); - } - - if (Object.getOwnPropertySymbols) { - var objectSymbols = Object.getOwnPropertySymbols(descs); - - for (var i = 0; i < objectSymbols.length; i++) { - var sym = objectSymbols[i]; - var desc = descs[sym]; - desc.configurable = desc.enumerable = true; - if ("value" in desc) desc.writable = true; - Object.defineProperty(obj, sym, desc); - } - } - - return obj; -} - -module.exports = _defineEnumerableProperties; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/defineProperty.js b/node_modules/@babel/runtime/helpers/defineProperty.js deleted file mode 100644 index 1cd65ac..0000000 --- a/node_modules/@babel/runtime/helpers/defineProperty.js +++ /dev/null @@ -1,17 +0,0 @@ -function _defineProperty(obj, key, value) { - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; - } - - return obj; -} - -module.exports = _defineProperty; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/AsyncGenerator.js b/node_modules/@babel/runtime/helpers/esm/AsyncGenerator.js deleted file mode 100644 index 48383ec..0000000 --- a/node_modules/@babel/runtime/helpers/esm/AsyncGenerator.js +++ /dev/null @@ -1,97 +0,0 @@ -import AwaitValue from "./AwaitValue.js"; -export default function AsyncGenerator(gen) { - var front, back; - - function send(key, arg) { - return new Promise(function (resolve, reject) { - var request = { - key: key, - arg: arg, - resolve: resolve, - reject: reject, - next: null - }; - - if (back) { - back = back.next = request; - } else { - front = back = request; - resume(key, arg); - } - }); - } - - function resume(key, arg) { - try { - var result = gen[key](arg); - var value = result.value; - var wrappedAwait = value instanceof AwaitValue; - Promise.resolve(wrappedAwait ? value.wrapped : value).then(function (arg) { - if (wrappedAwait) { - resume(key === "return" ? "return" : "next", arg); - return; - } - - settle(result.done ? "return" : "normal", arg); - }, function (err) { - resume("throw", err); - }); - } catch (err) { - settle("throw", err); - } - } - - function settle(type, value) { - switch (type) { - case "return": - front.resolve({ - value: value, - done: true - }); - break; - - case "throw": - front.reject(value); - break; - - default: - front.resolve({ - value: value, - done: false - }); - break; - } - - front = front.next; - - if (front) { - resume(front.key, front.arg); - } else { - back = null; - } - } - - this._invoke = send; - - if (typeof gen["return"] !== "function") { - this["return"] = undefined; - } -} - -if (typeof Symbol === "function" && Symbol.asyncIterator) { - AsyncGenerator.prototype[Symbol.asyncIterator] = function () { - return this; - }; -} - -AsyncGenerator.prototype.next = function (arg) { - return this._invoke("next", arg); -}; - -AsyncGenerator.prototype["throw"] = function (arg) { - return this._invoke("throw", arg); -}; - -AsyncGenerator.prototype["return"] = function (arg) { - return this._invoke("return", arg); -}; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/AwaitValue.js b/node_modules/@babel/runtime/helpers/esm/AwaitValue.js deleted file mode 100644 index 5237e18..0000000 --- a/node_modules/@babel/runtime/helpers/esm/AwaitValue.js +++ /dev/null @@ -1,3 +0,0 @@ -export default function _AwaitValue(value) { - this.wrapped = value; -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/applyDecoratedDescriptor.js b/node_modules/@babel/runtime/helpers/esm/applyDecoratedDescriptor.js deleted file mode 100644 index 84b5961..0000000 --- a/node_modules/@babel/runtime/helpers/esm/applyDecoratedDescriptor.js +++ /dev/null @@ -1,28 +0,0 @@ -export default function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { - var desc = {}; - Object.keys(descriptor).forEach(function (key) { - desc[key] = descriptor[key]; - }); - desc.enumerable = !!desc.enumerable; - desc.configurable = !!desc.configurable; - - if ('value' in desc || desc.initializer) { - desc.writable = true; - } - - desc = decorators.slice().reverse().reduce(function (desc, decorator) { - return decorator(target, property, desc) || desc; - }, desc); - - if (context && desc.initializer !== void 0) { - desc.value = desc.initializer ? desc.initializer.call(context) : void 0; - desc.initializer = undefined; - } - - if (desc.initializer === void 0) { - Object.defineProperty(target, property, desc); - desc = null; - } - - return desc; -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js b/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js deleted file mode 100644 index edbeb8e..0000000 --- a/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js +++ /dev/null @@ -1,9 +0,0 @@ -export default function _arrayLikeToArray(arr, len) { - if (len == null || len > arr.length) len = arr.length; - - for (var i = 0, arr2 = new Array(len); i < len; i++) { - arr2[i] = arr[i]; - } - - return arr2; -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js b/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js deleted file mode 100644 index be734fc..0000000 --- a/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js +++ /dev/null @@ -1,3 +0,0 @@ -export default function _arrayWithHoles(arr) { - if (Array.isArray(arr)) return arr; -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js b/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js deleted file mode 100644 index f7d8dc7..0000000 --- a/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js +++ /dev/null @@ -1,4 +0,0 @@ -import arrayLikeToArray from "./arrayLikeToArray.js"; -export default function _arrayWithoutHoles(arr) { - if (Array.isArray(arr)) return arrayLikeToArray(arr); -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js b/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js deleted file mode 100644 index bbf849c..0000000 --- a/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js +++ /dev/null @@ -1,7 +0,0 @@ -export default function _assertThisInitialized(self) { - if (self === void 0) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - } - - return self; -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/asyncGeneratorDelegate.js b/node_modules/@babel/runtime/helpers/esm/asyncGeneratorDelegate.js deleted file mode 100644 index eb56fe5..0000000 --- a/node_modules/@babel/runtime/helpers/esm/asyncGeneratorDelegate.js +++ /dev/null @@ -1,56 +0,0 @@ -export default function _asyncGeneratorDelegate(inner, awaitWrap) { - var iter = {}, - waiting = false; - - function pump(key, value) { - waiting = true; - value = new Promise(function (resolve) { - resolve(inner[key](value)); - }); - return { - done: false, - value: awaitWrap(value) - }; - } - - ; - - if (typeof Symbol === "function" && Symbol.iterator) { - iter[Symbol.iterator] = function () { - return this; - }; - } - - iter.next = function (value) { - if (waiting) { - waiting = false; - return value; - } - - return pump("next", value); - }; - - if (typeof inner["throw"] === "function") { - iter["throw"] = function (value) { - if (waiting) { - waiting = false; - throw value; - } - - return pump("throw", value); - }; - } - - if (typeof inner["return"] === "function") { - iter["return"] = function (value) { - if (waiting) { - waiting = false; - return value; - } - - return pump("return", value); - }; - } - - return iter; -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/asyncIterator.js b/node_modules/@babel/runtime/helpers/esm/asyncIterator.js deleted file mode 100644 index e03fa97..0000000 --- a/node_modules/@babel/runtime/helpers/esm/asyncIterator.js +++ /dev/null @@ -1,17 +0,0 @@ -export default function _asyncIterator(iterable) { - var method; - - if (typeof Symbol !== "undefined") { - if (Symbol.asyncIterator) { - method = iterable[Symbol.asyncIterator]; - if (method != null) return method.call(iterable); - } - - if (Symbol.iterator) { - method = iterable[Symbol.iterator]; - if (method != null) return method.call(iterable); - } - } - - throw new TypeError("Object is not async iterable"); -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js b/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js deleted file mode 100644 index 2a25f54..0000000 --- a/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js +++ /dev/null @@ -1,35 +0,0 @@ -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { - try { - var info = gen[key](arg); - var value = info.value; - } catch (error) { - reject(error); - return; - } - - if (info.done) { - resolve(value); - } else { - Promise.resolve(value).then(_next, _throw); - } -} - -export default function _asyncToGenerator(fn) { - return function () { - var self = this, - args = arguments; - return new Promise(function (resolve, reject) { - var gen = fn.apply(self, args); - - function _next(value) { - asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); - } - - function _throw(err) { - asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); - } - - _next(undefined); - }); - }; -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/awaitAsyncGenerator.js b/node_modules/@babel/runtime/helpers/esm/awaitAsyncGenerator.js deleted file mode 100644 index ccca65e..0000000 --- a/node_modules/@babel/runtime/helpers/esm/awaitAsyncGenerator.js +++ /dev/null @@ -1,4 +0,0 @@ -import AwaitValue from "./AwaitValue.js"; -export default function _awaitAsyncGenerator(value) { - return new AwaitValue(value); -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorDestructureSet.js b/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorDestructureSet.js deleted file mode 100644 index 4472adc..0000000 --- a/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorDestructureSet.js +++ /dev/null @@ -1,20 +0,0 @@ -export default function _classApplyDescriptorDestructureSet(receiver, descriptor) { - if (descriptor.set) { - if (!("__destrObj" in descriptor)) { - descriptor.__destrObj = { - set value(v) { - descriptor.set.call(receiver, v); - } - - }; - } - - return descriptor.__destrObj; - } else { - if (!descriptor.writable) { - throw new TypeError("attempted to set read only private field"); - } - - return descriptor; - } -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorGet.js b/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorGet.js deleted file mode 100644 index 0fad169..0000000 --- a/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorGet.js +++ /dev/null @@ -1,7 +0,0 @@ -export default function _classApplyDescriptorGet(receiver, descriptor) { - if (descriptor.get) { - return descriptor.get.call(receiver); - } - - return descriptor.value; -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorSet.js b/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorSet.js deleted file mode 100644 index f295f3e..0000000 --- a/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorSet.js +++ /dev/null @@ -1,11 +0,0 @@ -export default function _classApplyDescriptorSet(receiver, descriptor, value) { - if (descriptor.set) { - descriptor.set.call(receiver, value); - } else { - if (!descriptor.writable) { - throw new TypeError("attempted to set read only private field"); - } - - descriptor.value = value; - } -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/classCallCheck.js b/node_modules/@babel/runtime/helpers/esm/classCallCheck.js deleted file mode 100644 index 2f1738a..0000000 --- a/node_modules/@babel/runtime/helpers/esm/classCallCheck.js +++ /dev/null @@ -1,5 +0,0 @@ -export default function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/classCheckPrivateStaticAccess.js b/node_modules/@babel/runtime/helpers/esm/classCheckPrivateStaticAccess.js deleted file mode 100644 index 098ed30..0000000 --- a/node_modules/@babel/runtime/helpers/esm/classCheckPrivateStaticAccess.js +++ /dev/null @@ -1,5 +0,0 @@ -export default function _classCheckPrivateStaticAccess(receiver, classConstructor) { - if (receiver !== classConstructor) { - throw new TypeError("Private static access of wrong provenance"); - } -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/classCheckPrivateStaticFieldDescriptor.js b/node_modules/@babel/runtime/helpers/esm/classCheckPrivateStaticFieldDescriptor.js deleted file mode 100644 index 0ef34b8..0000000 --- a/node_modules/@babel/runtime/helpers/esm/classCheckPrivateStaticFieldDescriptor.js +++ /dev/null @@ -1,5 +0,0 @@ -export default function _classCheckPrivateStaticFieldDescriptor(descriptor, action) { - if (descriptor === undefined) { - throw new TypeError("attempted to " + action + " private static field before its declaration"); - } -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/classExtractFieldDescriptor.js b/node_modules/@babel/runtime/helpers/esm/classExtractFieldDescriptor.js deleted file mode 100644 index 8dabe9a..0000000 --- a/node_modules/@babel/runtime/helpers/esm/classExtractFieldDescriptor.js +++ /dev/null @@ -1,7 +0,0 @@ -export default function _classExtractFieldDescriptor(receiver, privateMap, action) { - if (!privateMap.has(receiver)) { - throw new TypeError("attempted to " + action + " private field on non-instance"); - } - - return privateMap.get(receiver); -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/classNameTDZError.js b/node_modules/@babel/runtime/helpers/esm/classNameTDZError.js deleted file mode 100644 index f7b6dd5..0000000 --- a/node_modules/@babel/runtime/helpers/esm/classNameTDZError.js +++ /dev/null @@ -1,3 +0,0 @@ -export default function _classNameTDZError(name) { - throw new Error("Class \"" + name + "\" cannot be referenced in computed property keys."); -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/classPrivateFieldDestructureSet.js b/node_modules/@babel/runtime/helpers/esm/classPrivateFieldDestructureSet.js deleted file mode 100644 index fb58833..0000000 --- a/node_modules/@babel/runtime/helpers/esm/classPrivateFieldDestructureSet.js +++ /dev/null @@ -1,6 +0,0 @@ -import classApplyDescriptorDestructureSet from "./classApplyDescriptorDestructureSet.js"; -import classExtractFieldDescriptor from "./classExtractFieldDescriptor.js"; -export default function _classPrivateFieldDestructureSet(receiver, privateMap) { - var descriptor = classExtractFieldDescriptor(receiver, privateMap, "set"); - return classApplyDescriptorDestructureSet(receiver, descriptor); -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet.js b/node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet.js deleted file mode 100644 index 53cd137..0000000 --- a/node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet.js +++ /dev/null @@ -1,6 +0,0 @@ -import classApplyDescriptorGet from "./classApplyDescriptorGet.js"; -import classExtractFieldDescriptor from "./classExtractFieldDescriptor.js"; -export default function _classPrivateFieldGet(receiver, privateMap) { - var descriptor = classExtractFieldDescriptor(receiver, privateMap, "get"); - return classApplyDescriptorGet(receiver, descriptor); -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseBase.js b/node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseBase.js deleted file mode 100644 index 5b10916..0000000 --- a/node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseBase.js +++ /dev/null @@ -1,7 +0,0 @@ -export default function _classPrivateFieldBase(receiver, privateKey) { - if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { - throw new TypeError("attempted to use private field on non-instance"); - } - - return receiver; -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseKey.js b/node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseKey.js deleted file mode 100644 index 5b7e5ac..0000000 --- a/node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseKey.js +++ /dev/null @@ -1,4 +0,0 @@ -var id = 0; -export default function _classPrivateFieldKey(name) { - return "__private_" + id++ + "_" + name; -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet.js b/node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet.js deleted file mode 100644 index ad91be4..0000000 --- a/node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet.js +++ /dev/null @@ -1,7 +0,0 @@ -import classApplyDescriptorSet from "./classApplyDescriptorSet.js"; -import classExtractFieldDescriptor from "./classExtractFieldDescriptor.js"; -export default function _classPrivateFieldSet(receiver, privateMap, value) { - var descriptor = classExtractFieldDescriptor(receiver, privateMap, "set"); - classApplyDescriptorSet(receiver, descriptor, value); - return value; -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/classPrivateMethodGet.js b/node_modules/@babel/runtime/helpers/esm/classPrivateMethodGet.js deleted file mode 100644 index 38b9d58..0000000 --- a/node_modules/@babel/runtime/helpers/esm/classPrivateMethodGet.js +++ /dev/null @@ -1,7 +0,0 @@ -export default function _classPrivateMethodGet(receiver, privateSet, fn) { - if (!privateSet.has(receiver)) { - throw new TypeError("attempted to get private field on non-instance"); - } - - return fn; -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/classPrivateMethodSet.js b/node_modules/@babel/runtime/helpers/esm/classPrivateMethodSet.js deleted file mode 100644 index 2bbaf3a..0000000 --- a/node_modules/@babel/runtime/helpers/esm/classPrivateMethodSet.js +++ /dev/null @@ -1,3 +0,0 @@ -export default function _classPrivateMethodSet() { - throw new TypeError("attempted to reassign private method"); -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldDestructureSet.js b/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldDestructureSet.js deleted file mode 100644 index 77afcfb..0000000 --- a/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldDestructureSet.js +++ /dev/null @@ -1,8 +0,0 @@ -import classApplyDescriptorDestructureSet from "./classApplyDescriptorDestructureSet.js"; -import classCheckPrivateStaticAccess from "./classCheckPrivateStaticAccess.js"; -import classCheckPrivateStaticFieldDescriptor from "./classCheckPrivateStaticFieldDescriptor.js"; -export default function _classStaticPrivateFieldDestructureSet(receiver, classConstructor, descriptor) { - classCheckPrivateStaticAccess(receiver, classConstructor); - classCheckPrivateStaticFieldDescriptor(descriptor, "set"); - return classApplyDescriptorDestructureSet(receiver, descriptor); -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldSpecGet.js b/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldSpecGet.js deleted file mode 100644 index d253d31..0000000 --- a/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldSpecGet.js +++ /dev/null @@ -1,8 +0,0 @@ -import classApplyDescriptorGet from "./classApplyDescriptorGet.js"; -import classCheckPrivateStaticAccess from "./classCheckPrivateStaticAccess.js"; -import classCheckPrivateStaticFieldDescriptor from "./classCheckPrivateStaticFieldDescriptor.js"; -export default function _classStaticPrivateFieldSpecGet(receiver, classConstructor, descriptor) { - classCheckPrivateStaticAccess(receiver, classConstructor); - classCheckPrivateStaticFieldDescriptor(descriptor, "get"); - return classApplyDescriptorGet(receiver, descriptor); -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldSpecSet.js b/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldSpecSet.js deleted file mode 100644 index b0b0cc6..0000000 --- a/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldSpecSet.js +++ /dev/null @@ -1,9 +0,0 @@ -import classApplyDescriptorSet from "./classApplyDescriptorSet.js"; -import classCheckPrivateStaticAccess from "./classCheckPrivateStaticAccess.js"; -import classCheckPrivateStaticFieldDescriptor from "./classCheckPrivateStaticFieldDescriptor.js"; -export default function _classStaticPrivateFieldSpecSet(receiver, classConstructor, descriptor, value) { - classCheckPrivateStaticAccess(receiver, classConstructor); - classCheckPrivateStaticFieldDescriptor(descriptor, "set"); - classApplyDescriptorSet(receiver, descriptor, value); - return value; -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/classStaticPrivateMethodGet.js b/node_modules/@babel/runtime/helpers/esm/classStaticPrivateMethodGet.js deleted file mode 100644 index fddc7b2..0000000 --- a/node_modules/@babel/runtime/helpers/esm/classStaticPrivateMethodGet.js +++ /dev/null @@ -1,5 +0,0 @@ -import classCheckPrivateStaticAccess from "./classCheckPrivateStaticAccess.js"; -export default function _classStaticPrivateMethodGet(receiver, classConstructor, method) { - classCheckPrivateStaticAccess(receiver, classConstructor); - return method; -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/classStaticPrivateMethodSet.js b/node_modules/@babel/runtime/helpers/esm/classStaticPrivateMethodSet.js deleted file mode 100644 index d5ab60a..0000000 --- a/node_modules/@babel/runtime/helpers/esm/classStaticPrivateMethodSet.js +++ /dev/null @@ -1,3 +0,0 @@ -export default function _classStaticPrivateMethodSet() { - throw new TypeError("attempted to set read only static private field"); -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/construct.js b/node_modules/@babel/runtime/helpers/esm/construct.js deleted file mode 100644 index 0c39835..0000000 --- a/node_modules/@babel/runtime/helpers/esm/construct.js +++ /dev/null @@ -1,18 +0,0 @@ -import setPrototypeOf from "./setPrototypeOf.js"; -import isNativeReflectConstruct from "./isNativeReflectConstruct.js"; -export default function _construct(Parent, args, Class) { - if (isNativeReflectConstruct()) { - _construct = Reflect.construct; - } else { - _construct = function _construct(Parent, args, Class) { - var a = [null]; - a.push.apply(a, args); - var Constructor = Function.bind.apply(Parent, a); - var instance = new Constructor(); - if (Class) setPrototypeOf(instance, Class.prototype); - return instance; - }; - } - - return _construct.apply(null, arguments); -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/createClass.js b/node_modules/@babel/runtime/helpers/esm/createClass.js deleted file mode 100644 index d6cf412..0000000 --- a/node_modules/@babel/runtime/helpers/esm/createClass.js +++ /dev/null @@ -1,15 +0,0 @@ -function _defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, descriptor.key, descriptor); - } -} - -export default function _createClass(Constructor, protoProps, staticProps) { - if (protoProps) _defineProperties(Constructor.prototype, protoProps); - if (staticProps) _defineProperties(Constructor, staticProps); - return Constructor; -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js b/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js deleted file mode 100644 index 8ac1f59..0000000 --- a/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js +++ /dev/null @@ -1,57 +0,0 @@ -import unsupportedIterableToArray from "./unsupportedIterableToArray.js"; -export default function _createForOfIteratorHelper(o, allowArrayLike) { - var it; - - if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { - if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { - if (it) o = it; - var i = 0; - - var F = function F() {}; - - return { - s: F, - n: function n() { - if (i >= o.length) return { - done: true - }; - return { - done: false, - value: o[i++] - }; - }, - e: function e(_e) { - throw _e; - }, - f: F - }; - } - - throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); - } - - var normalCompletion = true, - didErr = false, - err; - return { - s: function s() { - it = o[Symbol.iterator](); - }, - n: function n() { - var step = it.next(); - normalCompletion = step.done; - return step; - }, - e: function e(_e2) { - didErr = true; - err = _e2; - }, - f: function f() { - try { - if (!normalCompletion && it["return"] != null) it["return"](); - } finally { - if (didErr) throw err; - } - } - }; -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelperLoose.js b/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelperLoose.js deleted file mode 100644 index abdc49a..0000000 --- a/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelperLoose.js +++ /dev/null @@ -1,25 +0,0 @@ -import unsupportedIterableToArray from "./unsupportedIterableToArray.js"; -export default function _createForOfIteratorHelperLoose(o, allowArrayLike) { - var it; - - if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { - if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { - if (it) o = it; - var i = 0; - return function () { - if (i >= o.length) return { - done: true - }; - return { - done: false, - value: o[i++] - }; - }; - } - - throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); - } - - it = o[Symbol.iterator](); - return it.next.bind(it); -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/createSuper.js b/node_modules/@babel/runtime/helpers/esm/createSuper.js deleted file mode 100644 index ea5ea99..0000000 --- a/node_modules/@babel/runtime/helpers/esm/createSuper.js +++ /dev/null @@ -1,19 +0,0 @@ -import getPrototypeOf from "./getPrototypeOf.js"; -import isNativeReflectConstruct from "./isNativeReflectConstruct.js"; -import possibleConstructorReturn from "./possibleConstructorReturn.js"; -export default function _createSuper(Derived) { - var hasNativeReflectConstruct = isNativeReflectConstruct(); - return function _createSuperInternal() { - var Super = getPrototypeOf(Derived), - result; - - if (hasNativeReflectConstruct) { - var NewTarget = getPrototypeOf(this).constructor; - result = Reflect.construct(Super, arguments, NewTarget); - } else { - result = Super.apply(this, arguments); - } - - return possibleConstructorReturn(this, result); - }; -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/decorate.js b/node_modules/@babel/runtime/helpers/esm/decorate.js deleted file mode 100644 index daf56da..0000000 --- a/node_modules/@babel/runtime/helpers/esm/decorate.js +++ /dev/null @@ -1,396 +0,0 @@ -import toArray from "./toArray.js"; -import toPropertyKey from "./toPropertyKey.js"; -export default function _decorate(decorators, factory, superClass, mixins) { - var api = _getDecoratorsApi(); - - if (mixins) { - for (var i = 0; i < mixins.length; i++) { - api = mixins[i](api); - } - } - - var r = factory(function initialize(O) { - api.initializeInstanceElements(O, decorated.elements); - }, superClass); - var decorated = api.decorateClass(_coalesceClassElements(r.d.map(_createElementDescriptor)), decorators); - api.initializeClassElements(r.F, decorated.elements); - return api.runClassFinishers(r.F, decorated.finishers); -} - -function _getDecoratorsApi() { - _getDecoratorsApi = function _getDecoratorsApi() { - return api; - }; - - var api = { - elementsDefinitionOrder: [["method"], ["field"]], - initializeInstanceElements: function initializeInstanceElements(O, elements) { - ["method", "field"].forEach(function (kind) { - elements.forEach(function (element) { - if (element.kind === kind && element.placement === "own") { - this.defineClassElement(O, element); - } - }, this); - }, this); - }, - initializeClassElements: function initializeClassElements(F, elements) { - var proto = F.prototype; - ["method", "field"].forEach(function (kind) { - elements.forEach(function (element) { - var placement = element.placement; - - if (element.kind === kind && (placement === "static" || placement === "prototype")) { - var receiver = placement === "static" ? F : proto; - this.defineClassElement(receiver, element); - } - }, this); - }, this); - }, - defineClassElement: function defineClassElement(receiver, element) { - var descriptor = element.descriptor; - - if (element.kind === "field") { - var initializer = element.initializer; - descriptor = { - enumerable: descriptor.enumerable, - writable: descriptor.writable, - configurable: descriptor.configurable, - value: initializer === void 0 ? void 0 : initializer.call(receiver) - }; - } - - Object.defineProperty(receiver, element.key, descriptor); - }, - decorateClass: function decorateClass(elements, decorators) { - var newElements = []; - var finishers = []; - var placements = { - "static": [], - prototype: [], - own: [] - }; - elements.forEach(function (element) { - this.addElementPlacement(element, placements); - }, this); - elements.forEach(function (element) { - if (!_hasDecorators(element)) return newElements.push(element); - var elementFinishersExtras = this.decorateElement(element, placements); - newElements.push(elementFinishersExtras.element); - newElements.push.apply(newElements, elementFinishersExtras.extras); - finishers.push.apply(finishers, elementFinishersExtras.finishers); - }, this); - - if (!decorators) { - return { - elements: newElements, - finishers: finishers - }; - } - - var result = this.decorateConstructor(newElements, decorators); - finishers.push.apply(finishers, result.finishers); - result.finishers = finishers; - return result; - }, - addElementPlacement: function addElementPlacement(element, placements, silent) { - var keys = placements[element.placement]; - - if (!silent && keys.indexOf(element.key) !== -1) { - throw new TypeError("Duplicated element (" + element.key + ")"); - } - - keys.push(element.key); - }, - decorateElement: function decorateElement(element, placements) { - var extras = []; - var finishers = []; - - for (var decorators = element.decorators, i = decorators.length - 1; i >= 0; i--) { - var keys = placements[element.placement]; - keys.splice(keys.indexOf(element.key), 1); - var elementObject = this.fromElementDescriptor(element); - var elementFinisherExtras = this.toElementFinisherExtras((0, decorators[i])(elementObject) || elementObject); - element = elementFinisherExtras.element; - this.addElementPlacement(element, placements); - - if (elementFinisherExtras.finisher) { - finishers.push(elementFinisherExtras.finisher); - } - - var newExtras = elementFinisherExtras.extras; - - if (newExtras) { - for (var j = 0; j < newExtras.length; j++) { - this.addElementPlacement(newExtras[j], placements); - } - - extras.push.apply(extras, newExtras); - } - } - - return { - element: element, - finishers: finishers, - extras: extras - }; - }, - decorateConstructor: function decorateConstructor(elements, decorators) { - var finishers = []; - - for (var i = decorators.length - 1; i >= 0; i--) { - var obj = this.fromClassDescriptor(elements); - var elementsAndFinisher = this.toClassDescriptor((0, decorators[i])(obj) || obj); - - if (elementsAndFinisher.finisher !== undefined) { - finishers.push(elementsAndFinisher.finisher); - } - - if (elementsAndFinisher.elements !== undefined) { - elements = elementsAndFinisher.elements; - - for (var j = 0; j < elements.length - 1; j++) { - for (var k = j + 1; k < elements.length; k++) { - if (elements[j].key === elements[k].key && elements[j].placement === elements[k].placement) { - throw new TypeError("Duplicated element (" + elements[j].key + ")"); - } - } - } - } - } - - return { - elements: elements, - finishers: finishers - }; - }, - fromElementDescriptor: function fromElementDescriptor(element) { - var obj = { - kind: element.kind, - key: element.key, - placement: element.placement, - descriptor: element.descriptor - }; - var desc = { - value: "Descriptor", - configurable: true - }; - Object.defineProperty(obj, Symbol.toStringTag, desc); - if (element.kind === "field") obj.initializer = element.initializer; - return obj; - }, - toElementDescriptors: function toElementDescriptors(elementObjects) { - if (elementObjects === undefined) return; - return toArray(elementObjects).map(function (elementObject) { - var element = this.toElementDescriptor(elementObject); - this.disallowProperty(elementObject, "finisher", "An element descriptor"); - this.disallowProperty(elementObject, "extras", "An element descriptor"); - return element; - }, this); - }, - toElementDescriptor: function toElementDescriptor(elementObject) { - var kind = String(elementObject.kind); - - if (kind !== "method" && kind !== "field") { - throw new TypeError('An element descriptor\'s .kind property must be either "method" or' + ' "field", but a decorator created an element descriptor with' + ' .kind "' + kind + '"'); - } - - var key = toPropertyKey(elementObject.key); - var placement = String(elementObject.placement); - - if (placement !== "static" && placement !== "prototype" && placement !== "own") { - throw new TypeError('An element descriptor\'s .placement property must be one of "static",' + ' "prototype" or "own", but a decorator created an element descriptor' + ' with .placement "' + placement + '"'); - } - - var descriptor = elementObject.descriptor; - this.disallowProperty(elementObject, "elements", "An element descriptor"); - var element = { - kind: kind, - key: key, - placement: placement, - descriptor: Object.assign({}, descriptor) - }; - - if (kind !== "field") { - this.disallowProperty(elementObject, "initializer", "A method descriptor"); - } else { - this.disallowProperty(descriptor, "get", "The property descriptor of a field descriptor"); - this.disallowProperty(descriptor, "set", "The property descriptor of a field descriptor"); - this.disallowProperty(descriptor, "value", "The property descriptor of a field descriptor"); - element.initializer = elementObject.initializer; - } - - return element; - }, - toElementFinisherExtras: function toElementFinisherExtras(elementObject) { - var element = this.toElementDescriptor(elementObject); - - var finisher = _optionalCallableProperty(elementObject, "finisher"); - - var extras = this.toElementDescriptors(elementObject.extras); - return { - element: element, - finisher: finisher, - extras: extras - }; - }, - fromClassDescriptor: function fromClassDescriptor(elements) { - var obj = { - kind: "class", - elements: elements.map(this.fromElementDescriptor, this) - }; - var desc = { - value: "Descriptor", - configurable: true - }; - Object.defineProperty(obj, Symbol.toStringTag, desc); - return obj; - }, - toClassDescriptor: function toClassDescriptor(obj) { - var kind = String(obj.kind); - - if (kind !== "class") { - throw new TypeError('A class descriptor\'s .kind property must be "class", but a decorator' + ' created a class descriptor with .kind "' + kind + '"'); - } - - this.disallowProperty(obj, "key", "A class descriptor"); - this.disallowProperty(obj, "placement", "A class descriptor"); - this.disallowProperty(obj, "descriptor", "A class descriptor"); - this.disallowProperty(obj, "initializer", "A class descriptor"); - this.disallowProperty(obj, "extras", "A class descriptor"); - - var finisher = _optionalCallableProperty(obj, "finisher"); - - var elements = this.toElementDescriptors(obj.elements); - return { - elements: elements, - finisher: finisher - }; - }, - runClassFinishers: function runClassFinishers(constructor, finishers) { - for (var i = 0; i < finishers.length; i++) { - var newConstructor = (0, finishers[i])(constructor); - - if (newConstructor !== undefined) { - if (typeof newConstructor !== "function") { - throw new TypeError("Finishers must return a constructor."); - } - - constructor = newConstructor; - } - } - - return constructor; - }, - disallowProperty: function disallowProperty(obj, name, objectType) { - if (obj[name] !== undefined) { - throw new TypeError(objectType + " can't have a ." + name + " property."); - } - } - }; - return api; -} - -function _createElementDescriptor(def) { - var key = toPropertyKey(def.key); - var descriptor; - - if (def.kind === "method") { - descriptor = { - value: def.value, - writable: true, - configurable: true, - enumerable: false - }; - } else if (def.kind === "get") { - descriptor = { - get: def.value, - configurable: true, - enumerable: false - }; - } else if (def.kind === "set") { - descriptor = { - set: def.value, - configurable: true, - enumerable: false - }; - } else if (def.kind === "field") { - descriptor = { - configurable: true, - writable: true, - enumerable: true - }; - } - - var element = { - kind: def.kind === "field" ? "field" : "method", - key: key, - placement: def["static"] ? "static" : def.kind === "field" ? "own" : "prototype", - descriptor: descriptor - }; - if (def.decorators) element.decorators = def.decorators; - if (def.kind === "field") element.initializer = def.value; - return element; -} - -function _coalesceGetterSetter(element, other) { - if (element.descriptor.get !== undefined) { - other.descriptor.get = element.descriptor.get; - } else { - other.descriptor.set = element.descriptor.set; - } -} - -function _coalesceClassElements(elements) { - var newElements = []; - - var isSameElement = function isSameElement(other) { - return other.kind === "method" && other.key === element.key && other.placement === element.placement; - }; - - for (var i = 0; i < elements.length; i++) { - var element = elements[i]; - var other; - - if (element.kind === "method" && (other = newElements.find(isSameElement))) { - if (_isDataDescriptor(element.descriptor) || _isDataDescriptor(other.descriptor)) { - if (_hasDecorators(element) || _hasDecorators(other)) { - throw new ReferenceError("Duplicated methods (" + element.key + ") can't be decorated."); - } - - other.descriptor = element.descriptor; - } else { - if (_hasDecorators(element)) { - if (_hasDecorators(other)) { - throw new ReferenceError("Decorators can't be placed on different accessors with for " + "the same property (" + element.key + ")."); - } - - other.decorators = element.decorators; - } - - _coalesceGetterSetter(element, other); - } - } else { - newElements.push(element); - } - } - - return newElements; -} - -function _hasDecorators(element) { - return element.decorators && element.decorators.length; -} - -function _isDataDescriptor(desc) { - return desc !== undefined && !(desc.value === undefined && desc.writable === undefined); -} - -function _optionalCallableProperty(obj, name) { - var value = obj[name]; - - if (value !== undefined && typeof value !== "function") { - throw new TypeError("Expected '" + name + "' to be a function"); - } - - return value; -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/defaults.js b/node_modules/@babel/runtime/helpers/esm/defaults.js deleted file mode 100644 index 3de1d8e..0000000 --- a/node_modules/@babel/runtime/helpers/esm/defaults.js +++ /dev/null @@ -1,14 +0,0 @@ -export default function _defaults(obj, defaults) { - var keys = Object.getOwnPropertyNames(defaults); - - for (var i = 0; i < keys.length; i++) { - var key = keys[i]; - var value = Object.getOwnPropertyDescriptor(defaults, key); - - if (value && value.configurable && obj[key] === undefined) { - Object.defineProperty(obj, key, value); - } - } - - return obj; -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/defineEnumerableProperties.js b/node_modules/@babel/runtime/helpers/esm/defineEnumerableProperties.js deleted file mode 100644 index 7981acd..0000000 --- a/node_modules/@babel/runtime/helpers/esm/defineEnumerableProperties.js +++ /dev/null @@ -1,22 +0,0 @@ -export default function _defineEnumerableProperties(obj, descs) { - for (var key in descs) { - var desc = descs[key]; - desc.configurable = desc.enumerable = true; - if ("value" in desc) desc.writable = true; - Object.defineProperty(obj, key, desc); - } - - if (Object.getOwnPropertySymbols) { - var objectSymbols = Object.getOwnPropertySymbols(descs); - - for (var i = 0; i < objectSymbols.length; i++) { - var sym = objectSymbols[i]; - var desc = descs[sym]; - desc.configurable = desc.enumerable = true; - if ("value" in desc) desc.writable = true; - Object.defineProperty(obj, sym, desc); - } - } - - return obj; -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/defineProperty.js b/node_modules/@babel/runtime/helpers/esm/defineProperty.js deleted file mode 100644 index 7cf6e59..0000000 --- a/node_modules/@babel/runtime/helpers/esm/defineProperty.js +++ /dev/null @@ -1,14 +0,0 @@ -export default function _defineProperty(obj, key, value) { - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; - } - - return obj; -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/extends.js b/node_modules/@babel/runtime/helpers/esm/extends.js deleted file mode 100644 index b9b138d..0000000 --- a/node_modules/@babel/runtime/helpers/esm/extends.js +++ /dev/null @@ -1,17 +0,0 @@ -export default function _extends() { - _extends = Object.assign || function (target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i]; - - for (var key in source) { - if (Object.prototype.hasOwnProperty.call(source, key)) { - target[key] = source[key]; - } - } - } - - return target; - }; - - return _extends.apply(this, arguments); -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/get.js b/node_modules/@babel/runtime/helpers/esm/get.js deleted file mode 100644 index 1bce020..0000000 --- a/node_modules/@babel/runtime/helpers/esm/get.js +++ /dev/null @@ -1,20 +0,0 @@ -import superPropBase from "./superPropBase.js"; -export default function _get(target, property, receiver) { - if (typeof Reflect !== "undefined" && Reflect.get) { - _get = Reflect.get; - } else { - _get = function _get(target, property, receiver) { - var base = superPropBase(target, property); - if (!base) return; - var desc = Object.getOwnPropertyDescriptor(base, property); - - if (desc.get) { - return desc.get.call(receiver); - } - - return desc.value; - }; - } - - return _get(target, property, receiver || target); -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js b/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js deleted file mode 100644 index 5abafe3..0000000 --- a/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js +++ /dev/null @@ -1,6 +0,0 @@ -export default function _getPrototypeOf(o) { - _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { - return o.__proto__ || Object.getPrototypeOf(o); - }; - return _getPrototypeOf(o); -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/inherits.js b/node_modules/@babel/runtime/helpers/esm/inherits.js deleted file mode 100644 index aee0f10..0000000 --- a/node_modules/@babel/runtime/helpers/esm/inherits.js +++ /dev/null @@ -1,15 +0,0 @@ -import setPrototypeOf from "./setPrototypeOf.js"; -export default function _inherits(subClass, superClass) { - if (typeof superClass !== "function" && superClass !== null) { - throw new TypeError("Super expression must either be null or a function"); - } - - subClass.prototype = Object.create(superClass && superClass.prototype, { - constructor: { - value: subClass, - writable: true, - configurable: true - } - }); - if (superClass) setPrototypeOf(subClass, superClass); -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js b/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js deleted file mode 100644 index 90bb796..0000000 --- a/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js +++ /dev/null @@ -1,6 +0,0 @@ -import setPrototypeOf from "./setPrototypeOf.js"; -export default function _inheritsLoose(subClass, superClass) { - subClass.prototype = Object.create(superClass.prototype); - subClass.prototype.constructor = subClass; - setPrototypeOf(subClass, superClass); -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/initializerDefineProperty.js b/node_modules/@babel/runtime/helpers/esm/initializerDefineProperty.js deleted file mode 100644 index 26fdea0..0000000 --- a/node_modules/@babel/runtime/helpers/esm/initializerDefineProperty.js +++ /dev/null @@ -1,9 +0,0 @@ -export default function _initializerDefineProperty(target, property, descriptor, context) { - if (!descriptor) return; - Object.defineProperty(target, property, { - enumerable: descriptor.enumerable, - configurable: descriptor.configurable, - writable: descriptor.writable, - value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 - }); -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/initializerWarningHelper.js b/node_modules/@babel/runtime/helpers/esm/initializerWarningHelper.js deleted file mode 100644 index 30d518c..0000000 --- a/node_modules/@babel/runtime/helpers/esm/initializerWarningHelper.js +++ /dev/null @@ -1,3 +0,0 @@ -export default function _initializerWarningHelper(descriptor, context) { - throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/instanceof.js b/node_modules/@babel/runtime/helpers/esm/instanceof.js deleted file mode 100644 index 8c43b71..0000000 --- a/node_modules/@babel/runtime/helpers/esm/instanceof.js +++ /dev/null @@ -1,7 +0,0 @@ -export default function _instanceof(left, right) { - if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) { - return !!right[Symbol.hasInstance](left); - } else { - return left instanceof right; - } -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/interopRequireDefault.js b/node_modules/@babel/runtime/helpers/esm/interopRequireDefault.js deleted file mode 100644 index c2df7b6..0000000 --- a/node_modules/@babel/runtime/helpers/esm/interopRequireDefault.js +++ /dev/null @@ -1,5 +0,0 @@ -export default function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { - "default": obj - }; -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/interopRequireWildcard.js b/node_modules/@babel/runtime/helpers/esm/interopRequireWildcard.js deleted file mode 100644 index bc57685..0000000 --- a/node_modules/@babel/runtime/helpers/esm/interopRequireWildcard.js +++ /dev/null @@ -1,53 +0,0 @@ -import _typeof from "@babel/runtime/helpers/typeof"; - -function _getRequireWildcardCache() { - if (typeof WeakMap !== "function") return null; - var cache = new WeakMap(); - - _getRequireWildcardCache = function _getRequireWildcardCache() { - return cache; - }; - - return cache; -} - -export default function _interopRequireWildcard(obj) { - if (obj && obj.__esModule) { - return obj; - } - - if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { - return { - "default": obj - }; - } - - var cache = _getRequireWildcardCache(); - - if (cache && cache.has(obj)) { - return cache.get(obj); - } - - var newObj = {}; - var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; - - for (var key in obj) { - if (Object.prototype.hasOwnProperty.call(obj, key)) { - var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; - - if (desc && (desc.get || desc.set)) { - Object.defineProperty(newObj, key, desc); - } else { - newObj[key] = obj[key]; - } - } - } - - newObj["default"] = obj; - - if (cache) { - cache.set(obj, newObj); - } - - return newObj; -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/isNativeFunction.js b/node_modules/@babel/runtime/helpers/esm/isNativeFunction.js deleted file mode 100644 index 7b1bc82..0000000 --- a/node_modules/@babel/runtime/helpers/esm/isNativeFunction.js +++ /dev/null @@ -1,3 +0,0 @@ -export default function _isNativeFunction(fn) { - return Function.toString.call(fn).indexOf("[native code]") !== -1; -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js b/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js deleted file mode 100644 index 0da1624..0000000 --- a/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js +++ /dev/null @@ -1,12 +0,0 @@ -export default function _isNativeReflectConstruct() { - if (typeof Reflect === "undefined" || !Reflect.construct) return false; - if (Reflect.construct.sham) return false; - if (typeof Proxy === "function") return true; - - try { - Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); - return true; - } catch (e) { - return false; - } -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/iterableToArray.js b/node_modules/@babel/runtime/helpers/esm/iterableToArray.js deleted file mode 100644 index 6cd6ae3..0000000 --- a/node_modules/@babel/runtime/helpers/esm/iterableToArray.js +++ /dev/null @@ -1,3 +0,0 @@ -export default function _iterableToArray(iter) { - if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js b/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js deleted file mode 100644 index 6402595..0000000 --- a/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js +++ /dev/null @@ -1,26 +0,0 @@ -export default function _iterableToArrayLimit(arr, i) { - if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; - var _arr = []; - var _n = true; - var _d = false; - var _e = undefined; - - try { - for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { - _arr.push(_s.value); - - if (i && _arr.length === i) break; - } - } catch (err) { - _d = true; - _e = err; - } finally { - try { - if (!_n && _i["return"] != null) _i["return"](); - } finally { - if (_d) throw _e; - } - } - - return _arr; -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimitLoose.js b/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimitLoose.js deleted file mode 100644 index 025c0ea..0000000 --- a/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimitLoose.js +++ /dev/null @@ -1,12 +0,0 @@ -export default function _iterableToArrayLimitLoose(arr, i) { - if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; - var _arr = []; - - for (var _iterator = arr[Symbol.iterator](), _step; !(_step = _iterator.next()).done;) { - _arr.push(_step.value); - - if (i && _arr.length === i) break; - } - - return _arr; -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/jsx.js b/node_modules/@babel/runtime/helpers/esm/jsx.js deleted file mode 100644 index 3a98cec..0000000 --- a/node_modules/@babel/runtime/helpers/esm/jsx.js +++ /dev/null @@ -1,46 +0,0 @@ -var REACT_ELEMENT_TYPE; -export default function _createRawReactElement(type, props, key, children) { - if (!REACT_ELEMENT_TYPE) { - REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol["for"] && Symbol["for"]("react.element") || 0xeac7; - } - - var defaultProps = type && type.defaultProps; - var childrenLength = arguments.length - 3; - - if (!props && childrenLength !== 0) { - props = { - children: void 0 - }; - } - - if (childrenLength === 1) { - props.children = children; - } else if (childrenLength > 1) { - var childArray = new Array(childrenLength); - - for (var i = 0; i < childrenLength; i++) { - childArray[i] = arguments[i + 3]; - } - - props.children = childArray; - } - - if (props && defaultProps) { - for (var propName in defaultProps) { - if (props[propName] === void 0) { - props[propName] = defaultProps[propName]; - } - } - } else if (!props) { - props = defaultProps || {}; - } - - return { - $$typeof: REACT_ELEMENT_TYPE, - type: type, - key: key === undefined ? null : '' + key, - ref: null, - props: props, - _owner: null - }; -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/maybeArrayLike.js b/node_modules/@babel/runtime/helpers/esm/maybeArrayLike.js deleted file mode 100644 index f687959..0000000 --- a/node_modules/@babel/runtime/helpers/esm/maybeArrayLike.js +++ /dev/null @@ -1,9 +0,0 @@ -import arrayLikeToArray from "./arrayLikeToArray.js"; -export default function _maybeArrayLike(next, arr, i) { - if (arr && !Array.isArray(arr) && typeof arr.length === "number") { - var len = arr.length; - return arrayLikeToArray(arr, i !== void 0 && i < len ? i : len); - } - - return next(arr, i); -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/newArrowCheck.js b/node_modules/@babel/runtime/helpers/esm/newArrowCheck.js deleted file mode 100644 index d6cd864..0000000 --- a/node_modules/@babel/runtime/helpers/esm/newArrowCheck.js +++ /dev/null @@ -1,5 +0,0 @@ -export default function _newArrowCheck(innerThis, boundThis) { - if (innerThis !== boundThis) { - throw new TypeError("Cannot instantiate an arrow function"); - } -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js b/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js deleted file mode 100644 index b349d00..0000000 --- a/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js +++ /dev/null @@ -1,3 +0,0 @@ -export default function _nonIterableRest() { - throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js b/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js deleted file mode 100644 index 82d8296..0000000 --- a/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js +++ /dev/null @@ -1,3 +0,0 @@ -export default function _nonIterableSpread() { - throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/objectDestructuringEmpty.js b/node_modules/@babel/runtime/helpers/esm/objectDestructuringEmpty.js deleted file mode 100644 index 82b67d2..0000000 --- a/node_modules/@babel/runtime/helpers/esm/objectDestructuringEmpty.js +++ /dev/null @@ -1,3 +0,0 @@ -export default function _objectDestructuringEmpty(obj) { - if (obj == null) throw new TypeError("Cannot destructure undefined"); -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/objectSpread.js b/node_modules/@babel/runtime/helpers/esm/objectSpread.js deleted file mode 100644 index 8c38ca7..0000000 --- a/node_modules/@babel/runtime/helpers/esm/objectSpread.js +++ /dev/null @@ -1,19 +0,0 @@ -import defineProperty from "./defineProperty.js"; -export default function _objectSpread(target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i] != null ? Object(arguments[i]) : {}; - var ownKeys = Object.keys(source); - - if (typeof Object.getOwnPropertySymbols === 'function') { - ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { - return Object.getOwnPropertyDescriptor(source, sym).enumerable; - })); - } - - ownKeys.forEach(function (key) { - defineProperty(target, key, source[key]); - }); - } - - return target; -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/objectSpread2.js b/node_modules/@babel/runtime/helpers/esm/objectSpread2.js deleted file mode 100644 index fcdd81b..0000000 --- a/node_modules/@babel/runtime/helpers/esm/objectSpread2.js +++ /dev/null @@ -1,35 +0,0 @@ -import defineProperty from "./defineProperty.js"; - -function ownKeys(object, enumerableOnly) { - var keys = Object.keys(object); - - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(object); - if (enumerableOnly) symbols = symbols.filter(function (sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; - }); - keys.push.apply(keys, symbols); - } - - return keys; -} - -export default function _objectSpread2(target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i] != null ? arguments[i] : {}; - - if (i % 2) { - ownKeys(Object(source), true).forEach(function (key) { - defineProperty(target, key, source[key]); - }); - } else if (Object.getOwnPropertyDescriptors) { - Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); - } else { - ownKeys(Object(source)).forEach(function (key) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); - }); - } - } - - return target; -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js b/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js deleted file mode 100644 index 0fef321..0000000 --- a/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js +++ /dev/null @@ -1,19 +0,0 @@ -import objectWithoutPropertiesLoose from "./objectWithoutPropertiesLoose.js"; -export default function _objectWithoutProperties(source, excluded) { - if (source == null) return {}; - var target = objectWithoutPropertiesLoose(source, excluded); - var key, i; - - if (Object.getOwnPropertySymbols) { - var sourceSymbolKeys = Object.getOwnPropertySymbols(source); - - for (i = 0; i < sourceSymbolKeys.length; i++) { - key = sourceSymbolKeys[i]; - if (excluded.indexOf(key) >= 0) continue; - if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; - target[key] = source[key]; - } - } - - return target; -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js b/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js deleted file mode 100644 index c36815c..0000000 --- a/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js +++ /dev/null @@ -1,14 +0,0 @@ -export default function _objectWithoutPropertiesLoose(source, excluded) { - if (source == null) return {}; - var target = {}; - var sourceKeys = Object.keys(source); - var key, i; - - for (i = 0; i < sourceKeys.length; i++) { - key = sourceKeys[i]; - if (excluded.indexOf(key) >= 0) continue; - target[key] = source[key]; - } - - return target; -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/package.json b/node_modules/@babel/runtime/helpers/esm/package.json deleted file mode 100644 index aead43d..0000000 --- a/node_modules/@babel/runtime/helpers/esm/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "type": "module" -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js b/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js deleted file mode 100644 index 0ae22f4..0000000 --- a/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js +++ /dev/null @@ -1,9 +0,0 @@ -import _typeof from "@babel/runtime/helpers/typeof"; -import assertThisInitialized from "./assertThisInitialized.js"; -export default function _possibleConstructorReturn(self, call) { - if (call && (_typeof(call) === "object" || typeof call === "function")) { - return call; - } - - return assertThisInitialized(self); -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/readOnlyError.js b/node_modules/@babel/runtime/helpers/esm/readOnlyError.js deleted file mode 100644 index 166e40e..0000000 --- a/node_modules/@babel/runtime/helpers/esm/readOnlyError.js +++ /dev/null @@ -1,3 +0,0 @@ -export default function _readOnlyError(name) { - throw new TypeError("\"" + name + "\" is read-only"); -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/set.js b/node_modules/@babel/runtime/helpers/esm/set.js deleted file mode 100644 index 9c54773..0000000 --- a/node_modules/@babel/runtime/helpers/esm/set.js +++ /dev/null @@ -1,51 +0,0 @@ -import superPropBase from "./superPropBase.js"; -import defineProperty from "./defineProperty.js"; - -function set(target, property, value, receiver) { - if (typeof Reflect !== "undefined" && Reflect.set) { - set = Reflect.set; - } else { - set = function set(target, property, value, receiver) { - var base = superPropBase(target, property); - var desc; - - if (base) { - desc = Object.getOwnPropertyDescriptor(base, property); - - if (desc.set) { - desc.set.call(receiver, value); - return true; - } else if (!desc.writable) { - return false; - } - } - - desc = Object.getOwnPropertyDescriptor(receiver, property); - - if (desc) { - if (!desc.writable) { - return false; - } - - desc.value = value; - Object.defineProperty(receiver, property, desc); - } else { - defineProperty(receiver, property, value); - } - - return true; - }; - } - - return set(target, property, value, receiver); -} - -export default function _set(target, property, value, receiver, isStrict) { - var s = set(target, property, value, receiver || target); - - if (!s && isStrict) { - throw new Error('failed to set property'); - } - - return value; -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js b/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js deleted file mode 100644 index e6ef03e..0000000 --- a/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js +++ /dev/null @@ -1,8 +0,0 @@ -export default function _setPrototypeOf(o, p) { - _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { - o.__proto__ = p; - return o; - }; - - return _setPrototypeOf(o, p); -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/skipFirstGeneratorNext.js b/node_modules/@babel/runtime/helpers/esm/skipFirstGeneratorNext.js deleted file mode 100644 index cadd9bb..0000000 --- a/node_modules/@babel/runtime/helpers/esm/skipFirstGeneratorNext.js +++ /dev/null @@ -1,7 +0,0 @@ -export default function _skipFirstGeneratorNext(fn) { - return function () { - var it = fn.apply(this, arguments); - it.next(); - return it; - }; -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/slicedToArray.js b/node_modules/@babel/runtime/helpers/esm/slicedToArray.js deleted file mode 100644 index 618200b..0000000 --- a/node_modules/@babel/runtime/helpers/esm/slicedToArray.js +++ /dev/null @@ -1,7 +0,0 @@ -import arrayWithHoles from "./arrayWithHoles.js"; -import iterableToArrayLimit from "./iterableToArrayLimit.js"; -import unsupportedIterableToArray from "./unsupportedIterableToArray.js"; -import nonIterableRest from "./nonIterableRest.js"; -export default function _slicedToArray(arr, i) { - return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest(); -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/slicedToArrayLoose.js b/node_modules/@babel/runtime/helpers/esm/slicedToArrayLoose.js deleted file mode 100644 index efc7429..0000000 --- a/node_modules/@babel/runtime/helpers/esm/slicedToArrayLoose.js +++ /dev/null @@ -1,7 +0,0 @@ -import arrayWithHoles from "./arrayWithHoles.js"; -import iterableToArrayLimitLoose from "./iterableToArrayLimitLoose.js"; -import unsupportedIterableToArray from "./unsupportedIterableToArray.js"; -import nonIterableRest from "./nonIterableRest.js"; -export default function _slicedToArrayLoose(arr, i) { - return arrayWithHoles(arr) || iterableToArrayLimitLoose(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest(); -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/superPropBase.js b/node_modules/@babel/runtime/helpers/esm/superPropBase.js deleted file mode 100644 index feffe6f..0000000 --- a/node_modules/@babel/runtime/helpers/esm/superPropBase.js +++ /dev/null @@ -1,9 +0,0 @@ -import getPrototypeOf from "./getPrototypeOf.js"; -export default function _superPropBase(object, property) { - while (!Object.prototype.hasOwnProperty.call(object, property)) { - object = getPrototypeOf(object); - if (object === null) break; - } - - return object; -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js b/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js deleted file mode 100644 index 421f18a..0000000 --- a/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js +++ /dev/null @@ -1,11 +0,0 @@ -export default function _taggedTemplateLiteral(strings, raw) { - if (!raw) { - raw = strings.slice(0); - } - - return Object.freeze(Object.defineProperties(strings, { - raw: { - value: Object.freeze(raw) - } - })); -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteralLoose.js b/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteralLoose.js deleted file mode 100644 index c8f081e..0000000 --- a/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteralLoose.js +++ /dev/null @@ -1,8 +0,0 @@ -export default function _taggedTemplateLiteralLoose(strings, raw) { - if (!raw) { - raw = strings.slice(0); - } - - strings.raw = raw; - return strings; -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/tdz.js b/node_modules/@babel/runtime/helpers/esm/tdz.js deleted file mode 100644 index d5d0adc..0000000 --- a/node_modules/@babel/runtime/helpers/esm/tdz.js +++ /dev/null @@ -1,3 +0,0 @@ -export default function _tdzError(name) { - throw new ReferenceError(name + " is not defined - temporal dead zone"); -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/temporalRef.js b/node_modules/@babel/runtime/helpers/esm/temporalRef.js deleted file mode 100644 index b25f7c4..0000000 --- a/node_modules/@babel/runtime/helpers/esm/temporalRef.js +++ /dev/null @@ -1,5 +0,0 @@ -import undef from "./temporalUndefined.js"; -import err from "./tdz.js"; -export default function _temporalRef(val, name) { - return val === undef ? err(name) : val; -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/temporalUndefined.js b/node_modules/@babel/runtime/helpers/esm/temporalUndefined.js deleted file mode 100644 index 1a35717..0000000 --- a/node_modules/@babel/runtime/helpers/esm/temporalUndefined.js +++ /dev/null @@ -1 +0,0 @@ -export default function _temporalUndefined() {} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/toArray.js b/node_modules/@babel/runtime/helpers/esm/toArray.js deleted file mode 100644 index ad7c871..0000000 --- a/node_modules/@babel/runtime/helpers/esm/toArray.js +++ /dev/null @@ -1,7 +0,0 @@ -import arrayWithHoles from "./arrayWithHoles.js"; -import iterableToArray from "./iterableToArray.js"; -import unsupportedIterableToArray from "./unsupportedIterableToArray.js"; -import nonIterableRest from "./nonIterableRest.js"; -export default function _toArray(arr) { - return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest(); -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js b/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js deleted file mode 100644 index bd91285..0000000 --- a/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js +++ /dev/null @@ -1,7 +0,0 @@ -import arrayWithoutHoles from "./arrayWithoutHoles.js"; -import iterableToArray from "./iterableToArray.js"; -import unsupportedIterableToArray from "./unsupportedIterableToArray.js"; -import nonIterableSpread from "./nonIterableSpread.js"; -export default function _toConsumableArray(arr) { - return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread(); -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/toPrimitive.js b/node_modules/@babel/runtime/helpers/esm/toPrimitive.js deleted file mode 100644 index 4cb70a5..0000000 --- a/node_modules/@babel/runtime/helpers/esm/toPrimitive.js +++ /dev/null @@ -1,13 +0,0 @@ -import _typeof from "@babel/runtime/helpers/typeof"; -export default function _toPrimitive(input, hint) { - if (_typeof(input) !== "object" || input === null) return input; - var prim = input[Symbol.toPrimitive]; - - if (prim !== undefined) { - var res = prim.call(input, hint || "default"); - if (_typeof(res) !== "object") return res; - throw new TypeError("@@toPrimitive must return a primitive value."); - } - - return (hint === "string" ? String : Number)(input); -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js b/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js deleted file mode 100644 index f1ba8a2..0000000 --- a/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js +++ /dev/null @@ -1,6 +0,0 @@ -import _typeof from "@babel/runtime/helpers/typeof"; -import toPrimitive from "./toPrimitive.js"; -export default function _toPropertyKey(arg) { - var key = toPrimitive(arg, "string"); - return _typeof(key) === "symbol" ? key : String(key); -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/typeof.js b/node_modules/@babel/runtime/helpers/esm/typeof.js deleted file mode 100644 index eb444f7..0000000 --- a/node_modules/@babel/runtime/helpers/esm/typeof.js +++ /dev/null @@ -1,15 +0,0 @@ -export default function _typeof(obj) { - "@babel/helpers - typeof"; - - if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { - _typeof = function _typeof(obj) { - return typeof obj; - }; - } else { - _typeof = function _typeof(obj) { - return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }; - } - - return _typeof(obj); -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js b/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js deleted file mode 100644 index c0f63bd..0000000 --- a/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js +++ /dev/null @@ -1,9 +0,0 @@ -import arrayLikeToArray from "./arrayLikeToArray.js"; -export default function _unsupportedIterableToArray(o, minLen) { - if (!o) return; - if (typeof o === "string") return arrayLikeToArray(o, minLen); - var n = Object.prototype.toString.call(o).slice(8, -1); - if (n === "Object" && o.constructor) n = o.constructor.name; - if (n === "Map" || n === "Set") return Array.from(o); - if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen); -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/wrapAsyncGenerator.js b/node_modules/@babel/runtime/helpers/esm/wrapAsyncGenerator.js deleted file mode 100644 index 723b2dd..0000000 --- a/node_modules/@babel/runtime/helpers/esm/wrapAsyncGenerator.js +++ /dev/null @@ -1,6 +0,0 @@ -import AsyncGenerator from "./AsyncGenerator.js"; -export default function _wrapAsyncGenerator(fn) { - return function () { - return new AsyncGenerator(fn.apply(this, arguments)); - }; -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js b/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js deleted file mode 100644 index 512630d..0000000 --- a/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js +++ /dev/null @@ -1,37 +0,0 @@ -import getPrototypeOf from "./getPrototypeOf.js"; -import setPrototypeOf from "./setPrototypeOf.js"; -import isNativeFunction from "./isNativeFunction.js"; -import construct from "./construct.js"; -export default function _wrapNativeSuper(Class) { - var _cache = typeof Map === "function" ? new Map() : undefined; - - _wrapNativeSuper = function _wrapNativeSuper(Class) { - if (Class === null || !isNativeFunction(Class)) return Class; - - if (typeof Class !== "function") { - throw new TypeError("Super expression must either be null or a function"); - } - - if (typeof _cache !== "undefined") { - if (_cache.has(Class)) return _cache.get(Class); - - _cache.set(Class, Wrapper); - } - - function Wrapper() { - return construct(Class, arguments, getPrototypeOf(this).constructor); - } - - Wrapper.prototype = Object.create(Class.prototype, { - constructor: { - value: Wrapper, - enumerable: false, - writable: true, - configurable: true - } - }); - return setPrototypeOf(Wrapper, Class); - }; - - return _wrapNativeSuper(Class); -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/wrapRegExp.js b/node_modules/@babel/runtime/helpers/esm/wrapRegExp.js deleted file mode 100644 index eb49ca3..0000000 --- a/node_modules/@babel/runtime/helpers/esm/wrapRegExp.js +++ /dev/null @@ -1,69 +0,0 @@ -import _typeof from "@babel/runtime/helpers/typeof"; -import wrapNativeSuper from "./wrapNativeSuper.js"; -import getPrototypeOf from "./getPrototypeOf.js"; -import possibleConstructorReturn from "./possibleConstructorReturn.js"; -import inherits from "./inherits.js"; -export default function _wrapRegExp(re, groups) { - _wrapRegExp = function _wrapRegExp(re, groups) { - return new BabelRegExp(re, undefined, groups); - }; - - var _RegExp = wrapNativeSuper(RegExp); - - var _super = RegExp.prototype; - - var _groups = new WeakMap(); - - function BabelRegExp(re, flags, groups) { - var _this = _RegExp.call(this, re, flags); - - _groups.set(_this, groups || _groups.get(re)); - - return _this; - } - - inherits(BabelRegExp, _RegExp); - - BabelRegExp.prototype.exec = function (str) { - var result = _super.exec.call(this, str); - - if (result) result.groups = buildGroups(result, this); - return result; - }; - - BabelRegExp.prototype[Symbol.replace] = function (str, substitution) { - if (typeof substitution === "string") { - var groups = _groups.get(this); - - return _super[Symbol.replace].call(this, str, substitution.replace(/\$<([^>]+)>/g, function (_, name) { - return "$" + groups[name]; - })); - } else if (typeof substitution === "function") { - var _this = this; - - return _super[Symbol.replace].call(this, str, function () { - var args = []; - args.push.apply(args, arguments); - - if (_typeof(args[args.length - 1]) !== "object") { - args.push(buildGroups(args, _this)); - } - - return substitution.apply(this, args); - }); - } else { - return _super[Symbol.replace].call(this, str, substitution); - } - }; - - function buildGroups(result, re) { - var g = _groups.get(re); - - return Object.keys(g).reduce(function (groups, name) { - groups[name] = result[g[name]]; - return groups; - }, Object.create(null)); - } - - return _wrapRegExp.apply(this, arguments); -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/writeOnlyError.js b/node_modules/@babel/runtime/helpers/esm/writeOnlyError.js deleted file mode 100644 index 9170bd4..0000000 --- a/node_modules/@babel/runtime/helpers/esm/writeOnlyError.js +++ /dev/null @@ -1,3 +0,0 @@ -export default function _writeOnlyError(name) { - throw new TypeError("\"" + name + "\" is write-only"); -} \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/extends.js b/node_modules/@babel/runtime/helpers/extends.js deleted file mode 100644 index eaf9547..0000000 --- a/node_modules/@babel/runtime/helpers/extends.js +++ /dev/null @@ -1,21 +0,0 @@ -function _extends() { - module.exports = _extends = Object.assign || function (target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i]; - - for (var key in source) { - if (Object.prototype.hasOwnProperty.call(source, key)) { - target[key] = source[key]; - } - } - } - - return target; - }; - - module.exports["default"] = module.exports, module.exports.__esModule = true; - return _extends.apply(this, arguments); -} - -module.exports = _extends; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/get.js b/node_modules/@babel/runtime/helpers/get.js deleted file mode 100644 index 3ed600f..0000000 --- a/node_modules/@babel/runtime/helpers/get.js +++ /dev/null @@ -1,27 +0,0 @@ -var superPropBase = require("./superPropBase.js"); - -function _get(target, property, receiver) { - if (typeof Reflect !== "undefined" && Reflect.get) { - module.exports = _get = Reflect.get; - module.exports["default"] = module.exports, module.exports.__esModule = true; - } else { - module.exports = _get = function _get(target, property, receiver) { - var base = superPropBase(target, property); - if (!base) return; - var desc = Object.getOwnPropertyDescriptor(base, property); - - if (desc.get) { - return desc.get.call(receiver); - } - - return desc.value; - }; - - module.exports["default"] = module.exports, module.exports.__esModule = true; - } - - return _get(target, property, receiver || target); -} - -module.exports = _get; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/getPrototypeOf.js b/node_modules/@babel/runtime/helpers/getPrototypeOf.js deleted file mode 100644 index a6916eb..0000000 --- a/node_modules/@babel/runtime/helpers/getPrototypeOf.js +++ /dev/null @@ -1,10 +0,0 @@ -function _getPrototypeOf(o) { - module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { - return o.__proto__ || Object.getPrototypeOf(o); - }; - module.exports["default"] = module.exports, module.exports.__esModule = true; - return _getPrototypeOf(o); -} - -module.exports = _getPrototypeOf; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/inherits.js b/node_modules/@babel/runtime/helpers/inherits.js deleted file mode 100644 index 3003e01..0000000 --- a/node_modules/@babel/runtime/helpers/inherits.js +++ /dev/null @@ -1,19 +0,0 @@ -var setPrototypeOf = require("./setPrototypeOf.js"); - -function _inherits(subClass, superClass) { - if (typeof superClass !== "function" && superClass !== null) { - throw new TypeError("Super expression must either be null or a function"); - } - - subClass.prototype = Object.create(superClass && superClass.prototype, { - constructor: { - value: subClass, - writable: true, - configurable: true - } - }); - if (superClass) setPrototypeOf(subClass, superClass); -} - -module.exports = _inherits; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/inheritsLoose.js b/node_modules/@babel/runtime/helpers/inheritsLoose.js deleted file mode 100644 index 93e4305..0000000 --- a/node_modules/@babel/runtime/helpers/inheritsLoose.js +++ /dev/null @@ -1,10 +0,0 @@ -var setPrototypeOf = require("./setPrototypeOf.js"); - -function _inheritsLoose(subClass, superClass) { - subClass.prototype = Object.create(superClass.prototype); - subClass.prototype.constructor = subClass; - setPrototypeOf(subClass, superClass); -} - -module.exports = _inheritsLoose; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/initializerDefineProperty.js b/node_modules/@babel/runtime/helpers/initializerDefineProperty.js deleted file mode 100644 index 6b1069e..0000000 --- a/node_modules/@babel/runtime/helpers/initializerDefineProperty.js +++ /dev/null @@ -1,12 +0,0 @@ -function _initializerDefineProperty(target, property, descriptor, context) { - if (!descriptor) return; - Object.defineProperty(target, property, { - enumerable: descriptor.enumerable, - configurable: descriptor.configurable, - writable: descriptor.writable, - value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 - }); -} - -module.exports = _initializerDefineProperty; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/initializerWarningHelper.js b/node_modules/@babel/runtime/helpers/initializerWarningHelper.js deleted file mode 100644 index 9d02886..0000000 --- a/node_modules/@babel/runtime/helpers/initializerWarningHelper.js +++ /dev/null @@ -1,6 +0,0 @@ -function _initializerWarningHelper(descriptor, context) { - throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); -} - -module.exports = _initializerWarningHelper; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/instanceof.js b/node_modules/@babel/runtime/helpers/instanceof.js deleted file mode 100644 index 654ebc8..0000000 --- a/node_modules/@babel/runtime/helpers/instanceof.js +++ /dev/null @@ -1,10 +0,0 @@ -function _instanceof(left, right) { - if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) { - return !!right[Symbol.hasInstance](left); - } else { - return left instanceof right; - } -} - -module.exports = _instanceof; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/interopRequireDefault.js b/node_modules/@babel/runtime/helpers/interopRequireDefault.js deleted file mode 100644 index 6a21368..0000000 --- a/node_modules/@babel/runtime/helpers/interopRequireDefault.js +++ /dev/null @@ -1,8 +0,0 @@ -function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { - "default": obj - }; -} - -module.exports = _interopRequireDefault; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/interopRequireWildcard.js b/node_modules/@babel/runtime/helpers/interopRequireWildcard.js deleted file mode 100644 index 7831929..0000000 --- a/node_modules/@babel/runtime/helpers/interopRequireWildcard.js +++ /dev/null @@ -1,56 +0,0 @@ -var _typeof = require("@babel/runtime/helpers/typeof")["default"]; - -function _getRequireWildcardCache() { - if (typeof WeakMap !== "function") return null; - var cache = new WeakMap(); - - _getRequireWildcardCache = function _getRequireWildcardCache() { - return cache; - }; - - return cache; -} - -function _interopRequireWildcard(obj) { - if (obj && obj.__esModule) { - return obj; - } - - if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { - return { - "default": obj - }; - } - - var cache = _getRequireWildcardCache(); - - if (cache && cache.has(obj)) { - return cache.get(obj); - } - - var newObj = {}; - var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; - - for (var key in obj) { - if (Object.prototype.hasOwnProperty.call(obj, key)) { - var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; - - if (desc && (desc.get || desc.set)) { - Object.defineProperty(newObj, key, desc); - } else { - newObj[key] = obj[key]; - } - } - } - - newObj["default"] = obj; - - if (cache) { - cache.set(obj, newObj); - } - - return newObj; -} - -module.exports = _interopRequireWildcard; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/isNativeFunction.js b/node_modules/@babel/runtime/helpers/isNativeFunction.js deleted file mode 100644 index 50eb8f5..0000000 --- a/node_modules/@babel/runtime/helpers/isNativeFunction.js +++ /dev/null @@ -1,6 +0,0 @@ -function _isNativeFunction(fn) { - return Function.toString.call(fn).indexOf("[native code]") !== -1; -} - -module.exports = _isNativeFunction; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js b/node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js deleted file mode 100644 index 3a201a6..0000000 --- a/node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js +++ /dev/null @@ -1,15 +0,0 @@ -function _isNativeReflectConstruct() { - if (typeof Reflect === "undefined" || !Reflect.construct) return false; - if (Reflect.construct.sham) return false; - if (typeof Proxy === "function") return true; - - try { - Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); - return true; - } catch (e) { - return false; - } -} - -module.exports = _isNativeReflectConstruct; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/iterableToArray.js b/node_modules/@babel/runtime/helpers/iterableToArray.js deleted file mode 100644 index e5a5d6b..0000000 --- a/node_modules/@babel/runtime/helpers/iterableToArray.js +++ /dev/null @@ -1,6 +0,0 @@ -function _iterableToArray(iter) { - if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); -} - -module.exports = _iterableToArray; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js b/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js deleted file mode 100644 index 41fb57a..0000000 --- a/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js +++ /dev/null @@ -1,29 +0,0 @@ -function _iterableToArrayLimit(arr, i) { - if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; - var _arr = []; - var _n = true; - var _d = false; - var _e = undefined; - - try { - for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { - _arr.push(_s.value); - - if (i && _arr.length === i) break; - } - } catch (err) { - _d = true; - _e = err; - } finally { - try { - if (!_n && _i["return"] != null) _i["return"](); - } finally { - if (_d) throw _e; - } - } - - return _arr; -} - -module.exports = _iterableToArrayLimit; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/iterableToArrayLimitLoose.js b/node_modules/@babel/runtime/helpers/iterableToArrayLimitLoose.js deleted file mode 100644 index ddbc8aa..0000000 --- a/node_modules/@babel/runtime/helpers/iterableToArrayLimitLoose.js +++ /dev/null @@ -1,15 +0,0 @@ -function _iterableToArrayLimitLoose(arr, i) { - if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; - var _arr = []; - - for (var _iterator = arr[Symbol.iterator](), _step; !(_step = _iterator.next()).done;) { - _arr.push(_step.value); - - if (i && _arr.length === i) break; - } - - return _arr; -} - -module.exports = _iterableToArrayLimitLoose; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/jsx.js b/node_modules/@babel/runtime/helpers/jsx.js deleted file mode 100644 index 8c86154..0000000 --- a/node_modules/@babel/runtime/helpers/jsx.js +++ /dev/null @@ -1,50 +0,0 @@ -var REACT_ELEMENT_TYPE; - -function _createRawReactElement(type, props, key, children) { - if (!REACT_ELEMENT_TYPE) { - REACT_ELEMENT_TYPE = typeof Symbol === "function" && Symbol["for"] && Symbol["for"]("react.element") || 0xeac7; - } - - var defaultProps = type && type.defaultProps; - var childrenLength = arguments.length - 3; - - if (!props && childrenLength !== 0) { - props = { - children: void 0 - }; - } - - if (childrenLength === 1) { - props.children = children; - } else if (childrenLength > 1) { - var childArray = new Array(childrenLength); - - for (var i = 0; i < childrenLength; i++) { - childArray[i] = arguments[i + 3]; - } - - props.children = childArray; - } - - if (props && defaultProps) { - for (var propName in defaultProps) { - if (props[propName] === void 0) { - props[propName] = defaultProps[propName]; - } - } - } else if (!props) { - props = defaultProps || {}; - } - - return { - $$typeof: REACT_ELEMENT_TYPE, - type: type, - key: key === undefined ? null : '' + key, - ref: null, - props: props, - _owner: null - }; -} - -module.exports = _createRawReactElement; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/maybeArrayLike.js b/node_modules/@babel/runtime/helpers/maybeArrayLike.js deleted file mode 100644 index 3ab618b..0000000 --- a/node_modules/@babel/runtime/helpers/maybeArrayLike.js +++ /dev/null @@ -1,13 +0,0 @@ -var arrayLikeToArray = require("./arrayLikeToArray.js"); - -function _maybeArrayLike(next, arr, i) { - if (arr && !Array.isArray(arr) && typeof arr.length === "number") { - var len = arr.length; - return arrayLikeToArray(arr, i !== void 0 && i < len ? i : len); - } - - return next(arr, i); -} - -module.exports = _maybeArrayLike; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/newArrowCheck.js b/node_modules/@babel/runtime/helpers/newArrowCheck.js deleted file mode 100644 index 8d7570b..0000000 --- a/node_modules/@babel/runtime/helpers/newArrowCheck.js +++ /dev/null @@ -1,8 +0,0 @@ -function _newArrowCheck(innerThis, boundThis) { - if (innerThis !== boundThis) { - throw new TypeError("Cannot instantiate an arrow function"); - } -} - -module.exports = _newArrowCheck; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/nonIterableRest.js b/node_modules/@babel/runtime/helpers/nonIterableRest.js deleted file mode 100644 index 22be4f5..0000000 --- a/node_modules/@babel/runtime/helpers/nonIterableRest.js +++ /dev/null @@ -1,6 +0,0 @@ -function _nonIterableRest() { - throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); -} - -module.exports = _nonIterableRest; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/nonIterableSpread.js b/node_modules/@babel/runtime/helpers/nonIterableSpread.js deleted file mode 100644 index 4ba722d..0000000 --- a/node_modules/@babel/runtime/helpers/nonIterableSpread.js +++ /dev/null @@ -1,6 +0,0 @@ -function _nonIterableSpread() { - throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); -} - -module.exports = _nonIterableSpread; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/objectDestructuringEmpty.js b/node_modules/@babel/runtime/helpers/objectDestructuringEmpty.js deleted file mode 100644 index 1bb88ac..0000000 --- a/node_modules/@babel/runtime/helpers/objectDestructuringEmpty.js +++ /dev/null @@ -1,6 +0,0 @@ -function _objectDestructuringEmpty(obj) { - if (obj == null) throw new TypeError("Cannot destructure undefined"); -} - -module.exports = _objectDestructuringEmpty; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/objectSpread.js b/node_modules/@babel/runtime/helpers/objectSpread.js deleted file mode 100644 index 00af209..0000000 --- a/node_modules/@babel/runtime/helpers/objectSpread.js +++ /dev/null @@ -1,23 +0,0 @@ -var defineProperty = require("./defineProperty.js"); - -function _objectSpread(target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i] != null ? Object(arguments[i]) : {}; - var ownKeys = Object.keys(source); - - if (typeof Object.getOwnPropertySymbols === 'function') { - ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { - return Object.getOwnPropertyDescriptor(source, sym).enumerable; - })); - } - - ownKeys.forEach(function (key) { - defineProperty(target, key, source[key]); - }); - } - - return target; -} - -module.exports = _objectSpread; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/objectSpread2.js b/node_modules/@babel/runtime/helpers/objectSpread2.js deleted file mode 100644 index e121f36..0000000 --- a/node_modules/@babel/runtime/helpers/objectSpread2.js +++ /dev/null @@ -1,38 +0,0 @@ -var defineProperty = require("./defineProperty.js"); - -function ownKeys(object, enumerableOnly) { - var keys = Object.keys(object); - - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(object); - if (enumerableOnly) symbols = symbols.filter(function (sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; - }); - keys.push.apply(keys, symbols); - } - - return keys; -} - -function _objectSpread2(target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i] != null ? arguments[i] : {}; - - if (i % 2) { - ownKeys(Object(source), true).forEach(function (key) { - defineProperty(target, key, source[key]); - }); - } else if (Object.getOwnPropertyDescriptors) { - Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); - } else { - ownKeys(Object(source)).forEach(function (key) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); - }); - } - } - - return target; -} - -module.exports = _objectSpread2; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/objectWithoutProperties.js b/node_modules/@babel/runtime/helpers/objectWithoutProperties.js deleted file mode 100644 index c000db7..0000000 --- a/node_modules/@babel/runtime/helpers/objectWithoutProperties.js +++ /dev/null @@ -1,23 +0,0 @@ -var objectWithoutPropertiesLoose = require("./objectWithoutPropertiesLoose.js"); - -function _objectWithoutProperties(source, excluded) { - if (source == null) return {}; - var target = objectWithoutPropertiesLoose(source, excluded); - var key, i; - - if (Object.getOwnPropertySymbols) { - var sourceSymbolKeys = Object.getOwnPropertySymbols(source); - - for (i = 0; i < sourceSymbolKeys.length; i++) { - key = sourceSymbolKeys[i]; - if (excluded.indexOf(key) >= 0) continue; - if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; - target[key] = source[key]; - } - } - - return target; -} - -module.exports = _objectWithoutProperties; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js b/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js deleted file mode 100644 index d9a73de..0000000 --- a/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js +++ /dev/null @@ -1,17 +0,0 @@ -function _objectWithoutPropertiesLoose(source, excluded) { - if (source == null) return {}; - var target = {}; - var sourceKeys = Object.keys(source); - var key, i; - - for (i = 0; i < sourceKeys.length; i++) { - key = sourceKeys[i]; - if (excluded.indexOf(key) >= 0) continue; - target[key] = source[key]; - } - - return target; -} - -module.exports = _objectWithoutPropertiesLoose; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js b/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js deleted file mode 100644 index 259ea2b..0000000 --- a/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js +++ /dev/null @@ -1,14 +0,0 @@ -var _typeof = require("@babel/runtime/helpers/typeof")["default"]; - -var assertThisInitialized = require("./assertThisInitialized.js"); - -function _possibleConstructorReturn(self, call) { - if (call && (_typeof(call) === "object" || typeof call === "function")) { - return call; - } - - return assertThisInitialized(self); -} - -module.exports = _possibleConstructorReturn; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/readOnlyError.js b/node_modules/@babel/runtime/helpers/readOnlyError.js deleted file mode 100644 index e805f89..0000000 --- a/node_modules/@babel/runtime/helpers/readOnlyError.js +++ /dev/null @@ -1,6 +0,0 @@ -function _readOnlyError(name) { - throw new TypeError("\"" + name + "\" is read-only"); -} - -module.exports = _readOnlyError; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/set.js b/node_modules/@babel/runtime/helpers/set.js deleted file mode 100644 index b7d184d..0000000 --- a/node_modules/@babel/runtime/helpers/set.js +++ /dev/null @@ -1,55 +0,0 @@ -var superPropBase = require("./superPropBase.js"); - -var defineProperty = require("./defineProperty.js"); - -function set(target, property, value, receiver) { - if (typeof Reflect !== "undefined" && Reflect.set) { - set = Reflect.set; - } else { - set = function set(target, property, value, receiver) { - var base = superPropBase(target, property); - var desc; - - if (base) { - desc = Object.getOwnPropertyDescriptor(base, property); - - if (desc.set) { - desc.set.call(receiver, value); - return true; - } else if (!desc.writable) { - return false; - } - } - - desc = Object.getOwnPropertyDescriptor(receiver, property); - - if (desc) { - if (!desc.writable) { - return false; - } - - desc.value = value; - Object.defineProperty(receiver, property, desc); - } else { - defineProperty(receiver, property, value); - } - - return true; - }; - } - - return set(target, property, value, receiver); -} - -function _set(target, property, value, receiver, isStrict) { - var s = set(target, property, value, receiver || target); - - if (!s && isStrict) { - throw new Error('failed to set property'); - } - - return value; -} - -module.exports = _set; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/setPrototypeOf.js b/node_modules/@babel/runtime/helpers/setPrototypeOf.js deleted file mode 100644 index 415797b..0000000 --- a/node_modules/@babel/runtime/helpers/setPrototypeOf.js +++ /dev/null @@ -1,12 +0,0 @@ -function _setPrototypeOf(o, p) { - module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { - o.__proto__ = p; - return o; - }; - - module.exports["default"] = module.exports, module.exports.__esModule = true; - return _setPrototypeOf(o, p); -} - -module.exports = _setPrototypeOf; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/skipFirstGeneratorNext.js b/node_modules/@babel/runtime/helpers/skipFirstGeneratorNext.js deleted file mode 100644 index ed60585..0000000 --- a/node_modules/@babel/runtime/helpers/skipFirstGeneratorNext.js +++ /dev/null @@ -1,10 +0,0 @@ -function _skipFirstGeneratorNext(fn) { - return function () { - var it = fn.apply(this, arguments); - it.next(); - return it; - }; -} - -module.exports = _skipFirstGeneratorNext; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/slicedToArray.js b/node_modules/@babel/runtime/helpers/slicedToArray.js deleted file mode 100644 index 101f404..0000000 --- a/node_modules/@babel/runtime/helpers/slicedToArray.js +++ /dev/null @@ -1,14 +0,0 @@ -var arrayWithHoles = require("./arrayWithHoles.js"); - -var iterableToArrayLimit = require("./iterableToArrayLimit.js"); - -var unsupportedIterableToArray = require("./unsupportedIterableToArray.js"); - -var nonIterableRest = require("./nonIterableRest.js"); - -function _slicedToArray(arr, i) { - return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest(); -} - -module.exports = _slicedToArray; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/slicedToArrayLoose.js b/node_modules/@babel/runtime/helpers/slicedToArrayLoose.js deleted file mode 100644 index 188db63..0000000 --- a/node_modules/@babel/runtime/helpers/slicedToArrayLoose.js +++ /dev/null @@ -1,14 +0,0 @@ -var arrayWithHoles = require("./arrayWithHoles.js"); - -var iterableToArrayLimitLoose = require("./iterableToArrayLimitLoose.js"); - -var unsupportedIterableToArray = require("./unsupportedIterableToArray.js"); - -var nonIterableRest = require("./nonIterableRest.js"); - -function _slicedToArrayLoose(arr, i) { - return arrayWithHoles(arr) || iterableToArrayLimitLoose(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest(); -} - -module.exports = _slicedToArrayLoose; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/superPropBase.js b/node_modules/@babel/runtime/helpers/superPropBase.js deleted file mode 100644 index ce12a88..0000000 --- a/node_modules/@babel/runtime/helpers/superPropBase.js +++ /dev/null @@ -1,13 +0,0 @@ -var getPrototypeOf = require("./getPrototypeOf.js"); - -function _superPropBase(object, property) { - while (!Object.prototype.hasOwnProperty.call(object, property)) { - object = getPrototypeOf(object); - if (object === null) break; - } - - return object; -} - -module.exports = _superPropBase; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js b/node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js deleted file mode 100644 index 1a524b3..0000000 --- a/node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js +++ /dev/null @@ -1,14 +0,0 @@ -function _taggedTemplateLiteral(strings, raw) { - if (!raw) { - raw = strings.slice(0); - } - - return Object.freeze(Object.defineProperties(strings, { - raw: { - value: Object.freeze(raw) - } - })); -} - -module.exports = _taggedTemplateLiteral; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/taggedTemplateLiteralLoose.js b/node_modules/@babel/runtime/helpers/taggedTemplateLiteralLoose.js deleted file mode 100644 index ab78e62..0000000 --- a/node_modules/@babel/runtime/helpers/taggedTemplateLiteralLoose.js +++ /dev/null @@ -1,11 +0,0 @@ -function _taggedTemplateLiteralLoose(strings, raw) { - if (!raw) { - raw = strings.slice(0); - } - - strings.raw = raw; - return strings; -} - -module.exports = _taggedTemplateLiteralLoose; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/tdz.js b/node_modules/@babel/runtime/helpers/tdz.js deleted file mode 100644 index a5b35a6..0000000 --- a/node_modules/@babel/runtime/helpers/tdz.js +++ /dev/null @@ -1,6 +0,0 @@ -function _tdzError(name) { - throw new ReferenceError(name + " is not defined - temporal dead zone"); -} - -module.exports = _tdzError; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/temporalRef.js b/node_modules/@babel/runtime/helpers/temporalRef.js deleted file mode 100644 index d4e9460..0000000 --- a/node_modules/@babel/runtime/helpers/temporalRef.js +++ /dev/null @@ -1,10 +0,0 @@ -var temporalUndefined = require("./temporalUndefined.js"); - -var tdz = require("./tdz.js"); - -function _temporalRef(val, name) { - return val === temporalUndefined ? tdz(name) : val; -} - -module.exports = _temporalRef; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/temporalUndefined.js b/node_modules/@babel/runtime/helpers/temporalUndefined.js deleted file mode 100644 index aeae645..0000000 --- a/node_modules/@babel/runtime/helpers/temporalUndefined.js +++ /dev/null @@ -1,4 +0,0 @@ -function _temporalUndefined() {} - -module.exports = _temporalUndefined; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/toArray.js b/node_modules/@babel/runtime/helpers/toArray.js deleted file mode 100644 index 3b911bd..0000000 --- a/node_modules/@babel/runtime/helpers/toArray.js +++ /dev/null @@ -1,14 +0,0 @@ -var arrayWithHoles = require("./arrayWithHoles.js"); - -var iterableToArray = require("./iterableToArray.js"); - -var unsupportedIterableToArray = require("./unsupportedIterableToArray.js"); - -var nonIterableRest = require("./nonIterableRest.js"); - -function _toArray(arr) { - return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest(); -} - -module.exports = _toArray; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/toConsumableArray.js b/node_modules/@babel/runtime/helpers/toConsumableArray.js deleted file mode 100644 index f084cd1..0000000 --- a/node_modules/@babel/runtime/helpers/toConsumableArray.js +++ /dev/null @@ -1,14 +0,0 @@ -var arrayWithoutHoles = require("./arrayWithoutHoles.js"); - -var iterableToArray = require("./iterableToArray.js"); - -var unsupportedIterableToArray = require("./unsupportedIterableToArray.js"); - -var nonIterableSpread = require("./nonIterableSpread.js"); - -function _toConsumableArray(arr) { - return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread(); -} - -module.exports = _toConsumableArray; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/toPrimitive.js b/node_modules/@babel/runtime/helpers/toPrimitive.js deleted file mode 100644 index ac40338..0000000 --- a/node_modules/@babel/runtime/helpers/toPrimitive.js +++ /dev/null @@ -1,17 +0,0 @@ -var _typeof = require("@babel/runtime/helpers/typeof")["default"]; - -function _toPrimitive(input, hint) { - if (_typeof(input) !== "object" || input === null) return input; - var prim = input[Symbol.toPrimitive]; - - if (prim !== undefined) { - var res = prim.call(input, hint || "default"); - if (_typeof(res) !== "object") return res; - throw new TypeError("@@toPrimitive must return a primitive value."); - } - - return (hint === "string" ? String : Number)(input); -} - -module.exports = _toPrimitive; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/toPropertyKey.js b/node_modules/@babel/runtime/helpers/toPropertyKey.js deleted file mode 100644 index 066b3f2..0000000 --- a/node_modules/@babel/runtime/helpers/toPropertyKey.js +++ /dev/null @@ -1,11 +0,0 @@ -var _typeof = require("@babel/runtime/helpers/typeof")["default"]; - -var toPrimitive = require("./toPrimitive.js"); - -function _toPropertyKey(arg) { - var key = toPrimitive(arg, "string"); - return _typeof(key) === "symbol" ? key : String(key); -} - -module.exports = _toPropertyKey; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/typeof.js b/node_modules/@babel/runtime/helpers/typeof.js deleted file mode 100644 index 02a5d8a..0000000 --- a/node_modules/@babel/runtime/helpers/typeof.js +++ /dev/null @@ -1,22 +0,0 @@ -function _typeof(obj) { - "@babel/helpers - typeof"; - - if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { - module.exports = _typeof = function _typeof(obj) { - return typeof obj; - }; - - module.exports["default"] = module.exports, module.exports.__esModule = true; - } else { - module.exports = _typeof = function _typeof(obj) { - return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; - }; - - module.exports["default"] = module.exports, module.exports.__esModule = true; - } - - return _typeof(obj); -} - -module.exports = _typeof; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js b/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js deleted file mode 100644 index 11bca7b..0000000 --- a/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js +++ /dev/null @@ -1,13 +0,0 @@ -var arrayLikeToArray = require("./arrayLikeToArray.js"); - -function _unsupportedIterableToArray(o, minLen) { - if (!o) return; - if (typeof o === "string") return arrayLikeToArray(o, minLen); - var n = Object.prototype.toString.call(o).slice(8, -1); - if (n === "Object" && o.constructor) n = o.constructor.name; - if (n === "Map" || n === "Set") return Array.from(o); - if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen); -} - -module.exports = _unsupportedIterableToArray; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/wrapAsyncGenerator.js b/node_modules/@babel/runtime/helpers/wrapAsyncGenerator.js deleted file mode 100644 index 057cd19..0000000 --- a/node_modules/@babel/runtime/helpers/wrapAsyncGenerator.js +++ /dev/null @@ -1,10 +0,0 @@ -var AsyncGenerator = require("./AsyncGenerator.js"); - -function _wrapAsyncGenerator(fn) { - return function () { - return new AsyncGenerator(fn.apply(this, arguments)); - }; -} - -module.exports = _wrapAsyncGenerator; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/wrapNativeSuper.js b/node_modules/@babel/runtime/helpers/wrapNativeSuper.js deleted file mode 100644 index 981c8dd..0000000 --- a/node_modules/@babel/runtime/helpers/wrapNativeSuper.js +++ /dev/null @@ -1,45 +0,0 @@ -var getPrototypeOf = require("./getPrototypeOf.js"); - -var setPrototypeOf = require("./setPrototypeOf.js"); - -var isNativeFunction = require("./isNativeFunction.js"); - -var construct = require("./construct.js"); - -function _wrapNativeSuper(Class) { - var _cache = typeof Map === "function" ? new Map() : undefined; - - module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) { - if (Class === null || !isNativeFunction(Class)) return Class; - - if (typeof Class !== "function") { - throw new TypeError("Super expression must either be null or a function"); - } - - if (typeof _cache !== "undefined") { - if (_cache.has(Class)) return _cache.get(Class); - - _cache.set(Class, Wrapper); - } - - function Wrapper() { - return construct(Class, arguments, getPrototypeOf(this).constructor); - } - - Wrapper.prototype = Object.create(Class.prototype, { - constructor: { - value: Wrapper, - enumerable: false, - writable: true, - configurable: true - } - }); - return setPrototypeOf(Wrapper, Class); - }; - - module.exports["default"] = module.exports, module.exports.__esModule = true; - return _wrapNativeSuper(Class); -} - -module.exports = _wrapNativeSuper; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/wrapRegExp.js b/node_modules/@babel/runtime/helpers/wrapRegExp.js deleted file mode 100644 index d977e93..0000000 --- a/node_modules/@babel/runtime/helpers/wrapRegExp.js +++ /dev/null @@ -1,79 +0,0 @@ -var _typeof = require("@babel/runtime/helpers/typeof")["default"]; - -var wrapNativeSuper = require("./wrapNativeSuper.js"); - -var getPrototypeOf = require("./getPrototypeOf.js"); - -var possibleConstructorReturn = require("./possibleConstructorReturn.js"); - -var inherits = require("./inherits.js"); - -function _wrapRegExp(re, groups) { - module.exports = _wrapRegExp = function _wrapRegExp(re, groups) { - return new BabelRegExp(re, undefined, groups); - }; - - module.exports["default"] = module.exports, module.exports.__esModule = true; - - var _RegExp = wrapNativeSuper(RegExp); - - var _super = RegExp.prototype; - - var _groups = new WeakMap(); - - function BabelRegExp(re, flags, groups) { - var _this = _RegExp.call(this, re, flags); - - _groups.set(_this, groups || _groups.get(re)); - - return _this; - } - - inherits(BabelRegExp, _RegExp); - - BabelRegExp.prototype.exec = function (str) { - var result = _super.exec.call(this, str); - - if (result) result.groups = buildGroups(result, this); - return result; - }; - - BabelRegExp.prototype[Symbol.replace] = function (str, substitution) { - if (typeof substitution === "string") { - var groups = _groups.get(this); - - return _super[Symbol.replace].call(this, str, substitution.replace(/\$<([^>]+)>/g, function (_, name) { - return "$" + groups[name]; - })); - } else if (typeof substitution === "function") { - var _this = this; - - return _super[Symbol.replace].call(this, str, function () { - var args = []; - args.push.apply(args, arguments); - - if (_typeof(args[args.length - 1]) !== "object") { - args.push(buildGroups(args, _this)); - } - - return substitution.apply(this, args); - }); - } else { - return _super[Symbol.replace].call(this, str, substitution); - } - }; - - function buildGroups(result, re) { - var g = _groups.get(re); - - return Object.keys(g).reduce(function (groups, name) { - groups[name] = result[g[name]]; - return groups; - }, Object.create(null)); - } - - return _wrapRegExp.apply(this, arguments); -} - -module.exports = _wrapRegExp; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/writeOnlyError.js b/node_modules/@babel/runtime/helpers/writeOnlyError.js deleted file mode 100644 index 6751a74..0000000 --- a/node_modules/@babel/runtime/helpers/writeOnlyError.js +++ /dev/null @@ -1,6 +0,0 @@ -function _writeOnlyError(name) { - throw new TypeError("\"" + name + "\" is write-only"); -} - -module.exports = _writeOnlyError; -module.exports["default"] = module.exports, module.exports.__esModule = true; \ No newline at end of file diff --git a/node_modules/@babel/runtime/package.json b/node_modules/@babel/runtime/package.json deleted file mode 100644 index d0ffc95..0000000 --- a/node_modules/@babel/runtime/package.json +++ /dev/null @@ -1,853 +0,0 @@ -{ - "_from": "@babel/runtime@^7.1.2", - "_id": "@babel/runtime@7.13.10", - "_inBundle": false, - "_integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", - "_location": "/@babel/runtime", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "@babel/runtime@^7.1.2", - "name": "@babel/runtime", - "escapedName": "@babel%2fruntime", - "scope": "@babel", - "rawSpec": "^7.1.2", - "saveSpec": null, - "fetchSpec": "^7.1.2" - }, - "_requiredBy": [ - "/history", - "/mini-create-react-context", - "/react-router", - "/react-router-dom" - ], - "_resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", - "_shasum": "47d42a57b6095f4468da440388fdbad8bebf0d7d", - "_spec": "@babel/runtime@^7.1.2", - "_where": "G:\\_comp_\\odsc\\orig\\AllNotes\\node_modules\\react-router-dom", - "author": { - "name": "Sebastian McKenzie", - "email": "sebmck@gmail.com" - }, - "bugs": { - "url": "https://github.com/babel/babel/issues" - }, - "bundleDependencies": false, - "dependencies": { - "regenerator-runtime": "^0.13.4" - }, - "deprecated": false, - "description": "babel's modular runtime helpers", - "exports": { - "./helpers/typeof": [ - { - "node": "./helpers/typeof.js", - "import": "./helpers/esm/typeof.js", - "default": "./helpers/typeof.js" - }, - "./helpers/typeof.js" - ], - "./helpers/esm/typeof": "./helpers/esm/typeof.js", - "./helpers/jsx": [ - { - "node": "./helpers/jsx.js", - "import": "./helpers/esm/jsx.js", - "default": "./helpers/jsx.js" - }, - "./helpers/jsx.js" - ], - "./helpers/esm/jsx": "./helpers/esm/jsx.js", - "./helpers/asyncIterator": [ - { - "node": "./helpers/asyncIterator.js", - "import": "./helpers/esm/asyncIterator.js", - "default": "./helpers/asyncIterator.js" - }, - "./helpers/asyncIterator.js" - ], - "./helpers/esm/asyncIterator": "./helpers/esm/asyncIterator.js", - "./helpers/AwaitValue": [ - { - "node": "./helpers/AwaitValue.js", - "import": "./helpers/esm/AwaitValue.js", - "default": "./helpers/AwaitValue.js" - }, - "./helpers/AwaitValue.js" - ], - "./helpers/esm/AwaitValue": "./helpers/esm/AwaitValue.js", - "./helpers/AsyncGenerator": [ - { - "node": "./helpers/AsyncGenerator.js", - "import": "./helpers/esm/AsyncGenerator.js", - "default": "./helpers/AsyncGenerator.js" - }, - "./helpers/AsyncGenerator.js" - ], - "./helpers/esm/AsyncGenerator": "./helpers/esm/AsyncGenerator.js", - "./helpers/wrapAsyncGenerator": [ - { - "node": "./helpers/wrapAsyncGenerator.js", - "import": "./helpers/esm/wrapAsyncGenerator.js", - "default": "./helpers/wrapAsyncGenerator.js" - }, - "./helpers/wrapAsyncGenerator.js" - ], - "./helpers/esm/wrapAsyncGenerator": "./helpers/esm/wrapAsyncGenerator.js", - "./helpers/awaitAsyncGenerator": [ - { - "node": "./helpers/awaitAsyncGenerator.js", - "import": "./helpers/esm/awaitAsyncGenerator.js", - "default": "./helpers/awaitAsyncGenerator.js" - }, - "./helpers/awaitAsyncGenerator.js" - ], - "./helpers/esm/awaitAsyncGenerator": "./helpers/esm/awaitAsyncGenerator.js", - "./helpers/asyncGeneratorDelegate": [ - { - "node": "./helpers/asyncGeneratorDelegate.js", - "import": "./helpers/esm/asyncGeneratorDelegate.js", - "default": "./helpers/asyncGeneratorDelegate.js" - }, - "./helpers/asyncGeneratorDelegate.js" - ], - "./helpers/esm/asyncGeneratorDelegate": "./helpers/esm/asyncGeneratorDelegate.js", - "./helpers/asyncToGenerator": [ - { - "node": "./helpers/asyncToGenerator.js", - "import": "./helpers/esm/asyncToGenerator.js", - "default": "./helpers/asyncToGenerator.js" - }, - "./helpers/asyncToGenerator.js" - ], - "./helpers/esm/asyncToGenerator": "./helpers/esm/asyncToGenerator.js", - "./helpers/classCallCheck": [ - { - "node": "./helpers/classCallCheck.js", - "import": "./helpers/esm/classCallCheck.js", - "default": "./helpers/classCallCheck.js" - }, - "./helpers/classCallCheck.js" - ], - "./helpers/esm/classCallCheck": "./helpers/esm/classCallCheck.js", - "./helpers/createClass": [ - { - "node": "./helpers/createClass.js", - "import": "./helpers/esm/createClass.js", - "default": "./helpers/createClass.js" - }, - "./helpers/createClass.js" - ], - "./helpers/esm/createClass": "./helpers/esm/createClass.js", - "./helpers/defineEnumerableProperties": [ - { - "node": "./helpers/defineEnumerableProperties.js", - "import": "./helpers/esm/defineEnumerableProperties.js", - "default": "./helpers/defineEnumerableProperties.js" - }, - "./helpers/defineEnumerableProperties.js" - ], - "./helpers/esm/defineEnumerableProperties": "./helpers/esm/defineEnumerableProperties.js", - "./helpers/defaults": [ - { - "node": "./helpers/defaults.js", - "import": "./helpers/esm/defaults.js", - "default": "./helpers/defaults.js" - }, - "./helpers/defaults.js" - ], - "./helpers/esm/defaults": "./helpers/esm/defaults.js", - "./helpers/defineProperty": [ - { - "node": "./helpers/defineProperty.js", - "import": "./helpers/esm/defineProperty.js", - "default": "./helpers/defineProperty.js" - }, - "./helpers/defineProperty.js" - ], - "./helpers/esm/defineProperty": "./helpers/esm/defineProperty.js", - "./helpers/extends": [ - { - "node": "./helpers/extends.js", - "import": "./helpers/esm/extends.js", - "default": "./helpers/extends.js" - }, - "./helpers/extends.js" - ], - "./helpers/esm/extends": "./helpers/esm/extends.js", - "./helpers/objectSpread": [ - { - "node": "./helpers/objectSpread.js", - "import": "./helpers/esm/objectSpread.js", - "default": "./helpers/objectSpread.js" - }, - "./helpers/objectSpread.js" - ], - "./helpers/esm/objectSpread": "./helpers/esm/objectSpread.js", - "./helpers/objectSpread2": [ - { - "node": "./helpers/objectSpread2.js", - "import": "./helpers/esm/objectSpread2.js", - "default": "./helpers/objectSpread2.js" - }, - "./helpers/objectSpread2.js" - ], - "./helpers/esm/objectSpread2": "./helpers/esm/objectSpread2.js", - "./helpers/inherits": [ - { - "node": "./helpers/inherits.js", - "import": "./helpers/esm/inherits.js", - "default": "./helpers/inherits.js" - }, - "./helpers/inherits.js" - ], - "./helpers/esm/inherits": "./helpers/esm/inherits.js", - "./helpers/inheritsLoose": [ - { - "node": "./helpers/inheritsLoose.js", - "import": "./helpers/esm/inheritsLoose.js", - "default": "./helpers/inheritsLoose.js" - }, - "./helpers/inheritsLoose.js" - ], - "./helpers/esm/inheritsLoose": "./helpers/esm/inheritsLoose.js", - "./helpers/getPrototypeOf": [ - { - "node": "./helpers/getPrototypeOf.js", - "import": "./helpers/esm/getPrototypeOf.js", - "default": "./helpers/getPrototypeOf.js" - }, - "./helpers/getPrototypeOf.js" - ], - "./helpers/esm/getPrototypeOf": "./helpers/esm/getPrototypeOf.js", - "./helpers/setPrototypeOf": [ - { - "node": "./helpers/setPrototypeOf.js", - "import": "./helpers/esm/setPrototypeOf.js", - "default": "./helpers/setPrototypeOf.js" - }, - "./helpers/setPrototypeOf.js" - ], - "./helpers/esm/setPrototypeOf": "./helpers/esm/setPrototypeOf.js", - "./helpers/isNativeReflectConstruct": [ - { - "node": "./helpers/isNativeReflectConstruct.js", - "import": "./helpers/esm/isNativeReflectConstruct.js", - "default": "./helpers/isNativeReflectConstruct.js" - }, - "./helpers/isNativeReflectConstruct.js" - ], - "./helpers/esm/isNativeReflectConstruct": "./helpers/esm/isNativeReflectConstruct.js", - "./helpers/construct": [ - { - "node": "./helpers/construct.js", - "import": "./helpers/esm/construct.js", - "default": "./helpers/construct.js" - }, - "./helpers/construct.js" - ], - "./helpers/esm/construct": "./helpers/esm/construct.js", - "./helpers/isNativeFunction": [ - { - "node": "./helpers/isNativeFunction.js", - "import": "./helpers/esm/isNativeFunction.js", - "default": "./helpers/isNativeFunction.js" - }, - "./helpers/isNativeFunction.js" - ], - "./helpers/esm/isNativeFunction": "./helpers/esm/isNativeFunction.js", - "./helpers/wrapNativeSuper": [ - { - "node": "./helpers/wrapNativeSuper.js", - "import": "./helpers/esm/wrapNativeSuper.js", - "default": "./helpers/wrapNativeSuper.js" - }, - "./helpers/wrapNativeSuper.js" - ], - "./helpers/esm/wrapNativeSuper": "./helpers/esm/wrapNativeSuper.js", - "./helpers/instanceof": [ - { - "node": "./helpers/instanceof.js", - "import": "./helpers/esm/instanceof.js", - "default": "./helpers/instanceof.js" - }, - "./helpers/instanceof.js" - ], - "./helpers/esm/instanceof": "./helpers/esm/instanceof.js", - "./helpers/interopRequireDefault": [ - { - "node": "./helpers/interopRequireDefault.js", - "import": "./helpers/esm/interopRequireDefault.js", - "default": "./helpers/interopRequireDefault.js" - }, - "./helpers/interopRequireDefault.js" - ], - "./helpers/esm/interopRequireDefault": "./helpers/esm/interopRequireDefault.js", - "./helpers/interopRequireWildcard": [ - { - "node": "./helpers/interopRequireWildcard.js", - "import": "./helpers/esm/interopRequireWildcard.js", - "default": "./helpers/interopRequireWildcard.js" - }, - "./helpers/interopRequireWildcard.js" - ], - "./helpers/esm/interopRequireWildcard": "./helpers/esm/interopRequireWildcard.js", - "./helpers/newArrowCheck": [ - { - "node": "./helpers/newArrowCheck.js", - "import": "./helpers/esm/newArrowCheck.js", - "default": "./helpers/newArrowCheck.js" - }, - "./helpers/newArrowCheck.js" - ], - "./helpers/esm/newArrowCheck": "./helpers/esm/newArrowCheck.js", - "./helpers/objectDestructuringEmpty": [ - { - "node": "./helpers/objectDestructuringEmpty.js", - "import": "./helpers/esm/objectDestructuringEmpty.js", - "default": "./helpers/objectDestructuringEmpty.js" - }, - "./helpers/objectDestructuringEmpty.js" - ], - "./helpers/esm/objectDestructuringEmpty": "./helpers/esm/objectDestructuringEmpty.js", - "./helpers/objectWithoutPropertiesLoose": [ - { - "node": "./helpers/objectWithoutPropertiesLoose.js", - "import": "./helpers/esm/objectWithoutPropertiesLoose.js", - "default": "./helpers/objectWithoutPropertiesLoose.js" - }, - "./helpers/objectWithoutPropertiesLoose.js" - ], - "./helpers/esm/objectWithoutPropertiesLoose": "./helpers/esm/objectWithoutPropertiesLoose.js", - "./helpers/objectWithoutProperties": [ - { - "node": "./helpers/objectWithoutProperties.js", - "import": "./helpers/esm/objectWithoutProperties.js", - "default": "./helpers/objectWithoutProperties.js" - }, - "./helpers/objectWithoutProperties.js" - ], - "./helpers/esm/objectWithoutProperties": "./helpers/esm/objectWithoutProperties.js", - "./helpers/assertThisInitialized": [ - { - "node": "./helpers/assertThisInitialized.js", - "import": "./helpers/esm/assertThisInitialized.js", - "default": "./helpers/assertThisInitialized.js" - }, - "./helpers/assertThisInitialized.js" - ], - "./helpers/esm/assertThisInitialized": "./helpers/esm/assertThisInitialized.js", - "./helpers/possibleConstructorReturn": [ - { - "node": "./helpers/possibleConstructorReturn.js", - "import": "./helpers/esm/possibleConstructorReturn.js", - "default": "./helpers/possibleConstructorReturn.js" - }, - "./helpers/possibleConstructorReturn.js" - ], - "./helpers/esm/possibleConstructorReturn": "./helpers/esm/possibleConstructorReturn.js", - "./helpers/createSuper": [ - { - "node": "./helpers/createSuper.js", - "import": "./helpers/esm/createSuper.js", - "default": "./helpers/createSuper.js" - }, - "./helpers/createSuper.js" - ], - "./helpers/esm/createSuper": "./helpers/esm/createSuper.js", - "./helpers/superPropBase": [ - { - "node": "./helpers/superPropBase.js", - "import": "./helpers/esm/superPropBase.js", - "default": "./helpers/superPropBase.js" - }, - "./helpers/superPropBase.js" - ], - "./helpers/esm/superPropBase": "./helpers/esm/superPropBase.js", - "./helpers/get": [ - { - "node": "./helpers/get.js", - "import": "./helpers/esm/get.js", - "default": "./helpers/get.js" - }, - "./helpers/get.js" - ], - "./helpers/esm/get": "./helpers/esm/get.js", - "./helpers/set": [ - { - "node": "./helpers/set.js", - "import": "./helpers/esm/set.js", - "default": "./helpers/set.js" - }, - "./helpers/set.js" - ], - "./helpers/esm/set": "./helpers/esm/set.js", - "./helpers/taggedTemplateLiteral": [ - { - "node": "./helpers/taggedTemplateLiteral.js", - "import": "./helpers/esm/taggedTemplateLiteral.js", - "default": "./helpers/taggedTemplateLiteral.js" - }, - "./helpers/taggedTemplateLiteral.js" - ], - "./helpers/esm/taggedTemplateLiteral": "./helpers/esm/taggedTemplateLiteral.js", - "./helpers/taggedTemplateLiteralLoose": [ - { - "node": "./helpers/taggedTemplateLiteralLoose.js", - "import": "./helpers/esm/taggedTemplateLiteralLoose.js", - "default": "./helpers/taggedTemplateLiteralLoose.js" - }, - "./helpers/taggedTemplateLiteralLoose.js" - ], - "./helpers/esm/taggedTemplateLiteralLoose": "./helpers/esm/taggedTemplateLiteralLoose.js", - "./helpers/readOnlyError": [ - { - "node": "./helpers/readOnlyError.js", - "import": "./helpers/esm/readOnlyError.js", - "default": "./helpers/readOnlyError.js" - }, - "./helpers/readOnlyError.js" - ], - "./helpers/esm/readOnlyError": "./helpers/esm/readOnlyError.js", - "./helpers/writeOnlyError": [ - { - "node": "./helpers/writeOnlyError.js", - "import": "./helpers/esm/writeOnlyError.js", - "default": "./helpers/writeOnlyError.js" - }, - "./helpers/writeOnlyError.js" - ], - "./helpers/esm/writeOnlyError": "./helpers/esm/writeOnlyError.js", - "./helpers/classNameTDZError": [ - { - "node": "./helpers/classNameTDZError.js", - "import": "./helpers/esm/classNameTDZError.js", - "default": "./helpers/classNameTDZError.js" - }, - "./helpers/classNameTDZError.js" - ], - "./helpers/esm/classNameTDZError": "./helpers/esm/classNameTDZError.js", - "./helpers/temporalUndefined": [ - { - "node": "./helpers/temporalUndefined.js", - "import": "./helpers/esm/temporalUndefined.js", - "default": "./helpers/temporalUndefined.js" - }, - "./helpers/temporalUndefined.js" - ], - "./helpers/esm/temporalUndefined": "./helpers/esm/temporalUndefined.js", - "./helpers/tdz": [ - { - "node": "./helpers/tdz.js", - "import": "./helpers/esm/tdz.js", - "default": "./helpers/tdz.js" - }, - "./helpers/tdz.js" - ], - "./helpers/esm/tdz": "./helpers/esm/tdz.js", - "./helpers/temporalRef": [ - { - "node": "./helpers/temporalRef.js", - "import": "./helpers/esm/temporalRef.js", - "default": "./helpers/temporalRef.js" - }, - "./helpers/temporalRef.js" - ], - "./helpers/esm/temporalRef": "./helpers/esm/temporalRef.js", - "./helpers/slicedToArray": [ - { - "node": "./helpers/slicedToArray.js", - "import": "./helpers/esm/slicedToArray.js", - "default": "./helpers/slicedToArray.js" - }, - "./helpers/slicedToArray.js" - ], - "./helpers/esm/slicedToArray": "./helpers/esm/slicedToArray.js", - "./helpers/slicedToArrayLoose": [ - { - "node": "./helpers/slicedToArrayLoose.js", - "import": "./helpers/esm/slicedToArrayLoose.js", - "default": "./helpers/slicedToArrayLoose.js" - }, - "./helpers/slicedToArrayLoose.js" - ], - "./helpers/esm/slicedToArrayLoose": "./helpers/esm/slicedToArrayLoose.js", - "./helpers/toArray": [ - { - "node": "./helpers/toArray.js", - "import": "./helpers/esm/toArray.js", - "default": "./helpers/toArray.js" - }, - "./helpers/toArray.js" - ], - "./helpers/esm/toArray": "./helpers/esm/toArray.js", - "./helpers/toConsumableArray": [ - { - "node": "./helpers/toConsumableArray.js", - "import": "./helpers/esm/toConsumableArray.js", - "default": "./helpers/toConsumableArray.js" - }, - "./helpers/toConsumableArray.js" - ], - "./helpers/esm/toConsumableArray": "./helpers/esm/toConsumableArray.js", - "./helpers/arrayWithoutHoles": [ - { - "node": "./helpers/arrayWithoutHoles.js", - "import": "./helpers/esm/arrayWithoutHoles.js", - "default": "./helpers/arrayWithoutHoles.js" - }, - "./helpers/arrayWithoutHoles.js" - ], - "./helpers/esm/arrayWithoutHoles": "./helpers/esm/arrayWithoutHoles.js", - "./helpers/arrayWithHoles": [ - { - "node": "./helpers/arrayWithHoles.js", - "import": "./helpers/esm/arrayWithHoles.js", - "default": "./helpers/arrayWithHoles.js" - }, - "./helpers/arrayWithHoles.js" - ], - "./helpers/esm/arrayWithHoles": "./helpers/esm/arrayWithHoles.js", - "./helpers/maybeArrayLike": [ - { - "node": "./helpers/maybeArrayLike.js", - "import": "./helpers/esm/maybeArrayLike.js", - "default": "./helpers/maybeArrayLike.js" - }, - "./helpers/maybeArrayLike.js" - ], - "./helpers/esm/maybeArrayLike": "./helpers/esm/maybeArrayLike.js", - "./helpers/iterableToArray": [ - { - "node": "./helpers/iterableToArray.js", - "import": "./helpers/esm/iterableToArray.js", - "default": "./helpers/iterableToArray.js" - }, - "./helpers/iterableToArray.js" - ], - "./helpers/esm/iterableToArray": "./helpers/esm/iterableToArray.js", - "./helpers/iterableToArrayLimit": [ - { - "node": "./helpers/iterableToArrayLimit.js", - "import": "./helpers/esm/iterableToArrayLimit.js", - "default": "./helpers/iterableToArrayLimit.js" - }, - "./helpers/iterableToArrayLimit.js" - ], - "./helpers/esm/iterableToArrayLimit": "./helpers/esm/iterableToArrayLimit.js", - "./helpers/iterableToArrayLimitLoose": [ - { - "node": "./helpers/iterableToArrayLimitLoose.js", - "import": "./helpers/esm/iterableToArrayLimitLoose.js", - "default": "./helpers/iterableToArrayLimitLoose.js" - }, - "./helpers/iterableToArrayLimitLoose.js" - ], - "./helpers/esm/iterableToArrayLimitLoose": "./helpers/esm/iterableToArrayLimitLoose.js", - "./helpers/unsupportedIterableToArray": [ - { - "node": "./helpers/unsupportedIterableToArray.js", - "import": "./helpers/esm/unsupportedIterableToArray.js", - "default": "./helpers/unsupportedIterableToArray.js" - }, - "./helpers/unsupportedIterableToArray.js" - ], - "./helpers/esm/unsupportedIterableToArray": "./helpers/esm/unsupportedIterableToArray.js", - "./helpers/arrayLikeToArray": [ - { - "node": "./helpers/arrayLikeToArray.js", - "import": "./helpers/esm/arrayLikeToArray.js", - "default": "./helpers/arrayLikeToArray.js" - }, - "./helpers/arrayLikeToArray.js" - ], - "./helpers/esm/arrayLikeToArray": "./helpers/esm/arrayLikeToArray.js", - "./helpers/nonIterableSpread": [ - { - "node": "./helpers/nonIterableSpread.js", - "import": "./helpers/esm/nonIterableSpread.js", - "default": "./helpers/nonIterableSpread.js" - }, - "./helpers/nonIterableSpread.js" - ], - "./helpers/esm/nonIterableSpread": "./helpers/esm/nonIterableSpread.js", - "./helpers/nonIterableRest": [ - { - "node": "./helpers/nonIterableRest.js", - "import": "./helpers/esm/nonIterableRest.js", - "default": "./helpers/nonIterableRest.js" - }, - "./helpers/nonIterableRest.js" - ], - "./helpers/esm/nonIterableRest": "./helpers/esm/nonIterableRest.js", - "./helpers/createForOfIteratorHelper": [ - { - "node": "./helpers/createForOfIteratorHelper.js", - "import": "./helpers/esm/createForOfIteratorHelper.js", - "default": "./helpers/createForOfIteratorHelper.js" - }, - "./helpers/createForOfIteratorHelper.js" - ], - "./helpers/esm/createForOfIteratorHelper": "./helpers/esm/createForOfIteratorHelper.js", - "./helpers/createForOfIteratorHelperLoose": [ - { - "node": "./helpers/createForOfIteratorHelperLoose.js", - "import": "./helpers/esm/createForOfIteratorHelperLoose.js", - "default": "./helpers/createForOfIteratorHelperLoose.js" - }, - "./helpers/createForOfIteratorHelperLoose.js" - ], - "./helpers/esm/createForOfIteratorHelperLoose": "./helpers/esm/createForOfIteratorHelperLoose.js", - "./helpers/skipFirstGeneratorNext": [ - { - "node": "./helpers/skipFirstGeneratorNext.js", - "import": "./helpers/esm/skipFirstGeneratorNext.js", - "default": "./helpers/skipFirstGeneratorNext.js" - }, - "./helpers/skipFirstGeneratorNext.js" - ], - "./helpers/esm/skipFirstGeneratorNext": "./helpers/esm/skipFirstGeneratorNext.js", - "./helpers/toPrimitive": [ - { - "node": "./helpers/toPrimitive.js", - "import": "./helpers/esm/toPrimitive.js", - "default": "./helpers/toPrimitive.js" - }, - "./helpers/toPrimitive.js" - ], - "./helpers/esm/toPrimitive": "./helpers/esm/toPrimitive.js", - "./helpers/toPropertyKey": [ - { - "node": "./helpers/toPropertyKey.js", - "import": "./helpers/esm/toPropertyKey.js", - "default": "./helpers/toPropertyKey.js" - }, - "./helpers/toPropertyKey.js" - ], - "./helpers/esm/toPropertyKey": "./helpers/esm/toPropertyKey.js", - "./helpers/initializerWarningHelper": [ - { - "node": "./helpers/initializerWarningHelper.js", - "import": "./helpers/esm/initializerWarningHelper.js", - "default": "./helpers/initializerWarningHelper.js" - }, - "./helpers/initializerWarningHelper.js" - ], - "./helpers/esm/initializerWarningHelper": "./helpers/esm/initializerWarningHelper.js", - "./helpers/initializerDefineProperty": [ - { - "node": "./helpers/initializerDefineProperty.js", - "import": "./helpers/esm/initializerDefineProperty.js", - "default": "./helpers/initializerDefineProperty.js" - }, - "./helpers/initializerDefineProperty.js" - ], - "./helpers/esm/initializerDefineProperty": "./helpers/esm/initializerDefineProperty.js", - "./helpers/applyDecoratedDescriptor": [ - { - "node": "./helpers/applyDecoratedDescriptor.js", - "import": "./helpers/esm/applyDecoratedDescriptor.js", - "default": "./helpers/applyDecoratedDescriptor.js" - }, - "./helpers/applyDecoratedDescriptor.js" - ], - "./helpers/esm/applyDecoratedDescriptor": "./helpers/esm/applyDecoratedDescriptor.js", - "./helpers/classPrivateFieldLooseKey": [ - { - "node": "./helpers/classPrivateFieldLooseKey.js", - "import": "./helpers/esm/classPrivateFieldLooseKey.js", - "default": "./helpers/classPrivateFieldLooseKey.js" - }, - "./helpers/classPrivateFieldLooseKey.js" - ], - "./helpers/esm/classPrivateFieldLooseKey": "./helpers/esm/classPrivateFieldLooseKey.js", - "./helpers/classPrivateFieldLooseBase": [ - { - "node": "./helpers/classPrivateFieldLooseBase.js", - "import": "./helpers/esm/classPrivateFieldLooseBase.js", - "default": "./helpers/classPrivateFieldLooseBase.js" - }, - "./helpers/classPrivateFieldLooseBase.js" - ], - "./helpers/esm/classPrivateFieldLooseBase": "./helpers/esm/classPrivateFieldLooseBase.js", - "./helpers/classPrivateFieldGet": [ - { - "node": "./helpers/classPrivateFieldGet.js", - "import": "./helpers/esm/classPrivateFieldGet.js", - "default": "./helpers/classPrivateFieldGet.js" - }, - "./helpers/classPrivateFieldGet.js" - ], - "./helpers/esm/classPrivateFieldGet": "./helpers/esm/classPrivateFieldGet.js", - "./helpers/classPrivateFieldSet": [ - { - "node": "./helpers/classPrivateFieldSet.js", - "import": "./helpers/esm/classPrivateFieldSet.js", - "default": "./helpers/classPrivateFieldSet.js" - }, - "./helpers/classPrivateFieldSet.js" - ], - "./helpers/esm/classPrivateFieldSet": "./helpers/esm/classPrivateFieldSet.js", - "./helpers/classPrivateFieldDestructureSet": [ - { - "node": "./helpers/classPrivateFieldDestructureSet.js", - "import": "./helpers/esm/classPrivateFieldDestructureSet.js", - "default": "./helpers/classPrivateFieldDestructureSet.js" - }, - "./helpers/classPrivateFieldDestructureSet.js" - ], - "./helpers/esm/classPrivateFieldDestructureSet": "./helpers/esm/classPrivateFieldDestructureSet.js", - "./helpers/classExtractFieldDescriptor": [ - { - "node": "./helpers/classExtractFieldDescriptor.js", - "import": "./helpers/esm/classExtractFieldDescriptor.js", - "default": "./helpers/classExtractFieldDescriptor.js" - }, - "./helpers/classExtractFieldDescriptor.js" - ], - "./helpers/esm/classExtractFieldDescriptor": "./helpers/esm/classExtractFieldDescriptor.js", - "./helpers/classStaticPrivateFieldSpecGet": [ - { - "node": "./helpers/classStaticPrivateFieldSpecGet.js", - "import": "./helpers/esm/classStaticPrivateFieldSpecGet.js", - "default": "./helpers/classStaticPrivateFieldSpecGet.js" - }, - "./helpers/classStaticPrivateFieldSpecGet.js" - ], - "./helpers/esm/classStaticPrivateFieldSpecGet": "./helpers/esm/classStaticPrivateFieldSpecGet.js", - "./helpers/classStaticPrivateFieldSpecSet": [ - { - "node": "./helpers/classStaticPrivateFieldSpecSet.js", - "import": "./helpers/esm/classStaticPrivateFieldSpecSet.js", - "default": "./helpers/classStaticPrivateFieldSpecSet.js" - }, - "./helpers/classStaticPrivateFieldSpecSet.js" - ], - "./helpers/esm/classStaticPrivateFieldSpecSet": "./helpers/esm/classStaticPrivateFieldSpecSet.js", - "./helpers/classStaticPrivateMethodGet": [ - { - "node": "./helpers/classStaticPrivateMethodGet.js", - "import": "./helpers/esm/classStaticPrivateMethodGet.js", - "default": "./helpers/classStaticPrivateMethodGet.js" - }, - "./helpers/classStaticPrivateMethodGet.js" - ], - "./helpers/esm/classStaticPrivateMethodGet": "./helpers/esm/classStaticPrivateMethodGet.js", - "./helpers/classStaticPrivateMethodSet": [ - { - "node": "./helpers/classStaticPrivateMethodSet.js", - "import": "./helpers/esm/classStaticPrivateMethodSet.js", - "default": "./helpers/classStaticPrivateMethodSet.js" - }, - "./helpers/classStaticPrivateMethodSet.js" - ], - "./helpers/esm/classStaticPrivateMethodSet": "./helpers/esm/classStaticPrivateMethodSet.js", - "./helpers/classApplyDescriptorGet": [ - { - "node": "./helpers/classApplyDescriptorGet.js", - "import": "./helpers/esm/classApplyDescriptorGet.js", - "default": "./helpers/classApplyDescriptorGet.js" - }, - "./helpers/classApplyDescriptorGet.js" - ], - "./helpers/esm/classApplyDescriptorGet": "./helpers/esm/classApplyDescriptorGet.js", - "./helpers/classApplyDescriptorSet": [ - { - "node": "./helpers/classApplyDescriptorSet.js", - "import": "./helpers/esm/classApplyDescriptorSet.js", - "default": "./helpers/classApplyDescriptorSet.js" - }, - "./helpers/classApplyDescriptorSet.js" - ], - "./helpers/esm/classApplyDescriptorSet": "./helpers/esm/classApplyDescriptorSet.js", - "./helpers/classApplyDescriptorDestructureSet": [ - { - "node": "./helpers/classApplyDescriptorDestructureSet.js", - "import": "./helpers/esm/classApplyDescriptorDestructureSet.js", - "default": "./helpers/classApplyDescriptorDestructureSet.js" - }, - "./helpers/classApplyDescriptorDestructureSet.js" - ], - "./helpers/esm/classApplyDescriptorDestructureSet": "./helpers/esm/classApplyDescriptorDestructureSet.js", - "./helpers/classStaticPrivateFieldDestructureSet": [ - { - "node": "./helpers/classStaticPrivateFieldDestructureSet.js", - "import": "./helpers/esm/classStaticPrivateFieldDestructureSet.js", - "default": "./helpers/classStaticPrivateFieldDestructureSet.js" - }, - "./helpers/classStaticPrivateFieldDestructureSet.js" - ], - "./helpers/esm/classStaticPrivateFieldDestructureSet": "./helpers/esm/classStaticPrivateFieldDestructureSet.js", - "./helpers/classCheckPrivateStaticAccess": [ - { - "node": "./helpers/classCheckPrivateStaticAccess.js", - "import": "./helpers/esm/classCheckPrivateStaticAccess.js", - "default": "./helpers/classCheckPrivateStaticAccess.js" - }, - "./helpers/classCheckPrivateStaticAccess.js" - ], - "./helpers/esm/classCheckPrivateStaticAccess": "./helpers/esm/classCheckPrivateStaticAccess.js", - "./helpers/classCheckPrivateStaticFieldDescriptor": [ - { - "node": "./helpers/classCheckPrivateStaticFieldDescriptor.js", - "import": "./helpers/esm/classCheckPrivateStaticFieldDescriptor.js", - "default": "./helpers/classCheckPrivateStaticFieldDescriptor.js" - }, - "./helpers/classCheckPrivateStaticFieldDescriptor.js" - ], - "./helpers/esm/classCheckPrivateStaticFieldDescriptor": "./helpers/esm/classCheckPrivateStaticFieldDescriptor.js", - "./helpers/decorate": [ - { - "node": "./helpers/decorate.js", - "import": "./helpers/esm/decorate.js", - "default": "./helpers/decorate.js" - }, - "./helpers/decorate.js" - ], - "./helpers/esm/decorate": "./helpers/esm/decorate.js", - "./helpers/classPrivateMethodGet": [ - { - "node": "./helpers/classPrivateMethodGet.js", - "import": "./helpers/esm/classPrivateMethodGet.js", - "default": "./helpers/classPrivateMethodGet.js" - }, - "./helpers/classPrivateMethodGet.js" - ], - "./helpers/esm/classPrivateMethodGet": "./helpers/esm/classPrivateMethodGet.js", - "./helpers/classPrivateMethodSet": [ - { - "node": "./helpers/classPrivateMethodSet.js", - "import": "./helpers/esm/classPrivateMethodSet.js", - "default": "./helpers/classPrivateMethodSet.js" - }, - "./helpers/classPrivateMethodSet.js" - ], - "./helpers/esm/classPrivateMethodSet": "./helpers/esm/classPrivateMethodSet.js", - "./helpers/wrapRegExp": [ - { - "node": "./helpers/wrapRegExp.js", - "import": "./helpers/esm/wrapRegExp.js", - "default": "./helpers/wrapRegExp.js" - }, - "./helpers/wrapRegExp.js" - ], - "./helpers/esm/wrapRegExp": "./helpers/esm/wrapRegExp.js", - "./package": "./package.json", - "./package.json": "./package.json", - "./regenerator": "./regenerator/index.js", - "./regenerator/*.js": "./regenerator/*.js", - "./regenerator/": "./regenerator/" - }, - "homepage": "https://babel.dev/docs/en/next/babel-runtime", - "license": "MIT", - "name": "@babel/runtime", - "publishConfig": { - "access": "public" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/babel/babel.git", - "directory": "packages/babel-runtime" - }, - "version": "7.13.10" -} diff --git a/node_modules/@babel/runtime/regenerator/index.js b/node_modules/@babel/runtime/regenerator/index.js deleted file mode 100644 index 9fd4158..0000000 --- a/node_modules/@babel/runtime/regenerator/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require("regenerator-runtime"); diff --git a/node_modules/history/DOMUtils.js b/node_modules/history/DOMUtils.js deleted file mode 100644 index c4f93d3..0000000 --- a/node_modules/history/DOMUtils.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -require('./warnAboutDeprecatedCJSRequire.js')('DOMUtils'); -module.exports = require('./index.js').DOMUtils; diff --git a/node_modules/history/ExecutionEnvironment.js b/node_modules/history/ExecutionEnvironment.js deleted file mode 100644 index 44de3b2..0000000 --- a/node_modules/history/ExecutionEnvironment.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -require('./warnAboutDeprecatedCJSRequire.js')('ExecutionEnvironment'); -module.exports = require('./index.js').ExecutionEnvironment; diff --git a/node_modules/history/LICENSE b/node_modules/history/LICENSE deleted file mode 100644 index dc15fe3..0000000 --- a/node_modules/history/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) React Training 2016-2018 - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/node_modules/history/LocationUtils.js b/node_modules/history/LocationUtils.js deleted file mode 100644 index a861205..0000000 --- a/node_modules/history/LocationUtils.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -require('./warnAboutDeprecatedCJSRequire.js')('LocationUtils'); -module.exports = require('./index.js').LocationUtils; diff --git a/node_modules/history/PathUtils.js b/node_modules/history/PathUtils.js deleted file mode 100644 index 7dc98c2..0000000 --- a/node_modules/history/PathUtils.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -require('./warnAboutDeprecatedCJSRequire.js')('PathUtils'); -module.exports = require('./index.js').PathUtils; diff --git a/node_modules/history/README.md b/node_modules/history/README.md deleted file mode 100644 index bfa8554..0000000 --- a/node_modules/history/README.md +++ /dev/null @@ -1,38 +0,0 @@ -# history · [![npm package][npm-badge]][npm] [![Travis][build-badge]][build] - -[npm-badge]: https://img.shields.io/npm/v/history.svg?style=flat-square -[npm]: https://www.npmjs.org/package/history -[build-badge]: https://img.shields.io/travis/ReactTraining/history/master.svg?style=flat-square -[build]: https://travis-ci.org/ReactTraining/history - -The history library lets you easily manage session history anywhere JavaScript runs. `history` abstracts away the differences in various environments and provides a minimal API that lets you manage the history stack, navigate, and persist state between sessions. - -## Documentation - -Documentation for the current branch can be found in the [docs](docs) directory. - -## Changes - -To see the changes that were made in a given release, please lookup the tag on [the releases page](https://github.com/ReactTraining/history/releases). - -For changes released in version 4.6.3 and earlier, please see [the `CHANGES.md` file](https://github.com/ReactTraining/history/blob/845d690c5576c7f55ecbe14babe0092e8e5bc2bb/CHANGES.md). - -## Development - -Development of the current stable release, version 4, happens on [the `master` branch](https://github.com/ReactTraining/history/tree/master). Please keep in mind that this branch may include some work that has not yet been published as part of an official release. However, since `master` is always stable, you should feel free to build your own working release straight from master at any time. - -Development of the next major release, version 5, happens on [the `dev` branch](https://github.com/ReactTraining/history/tree/dev). - -If you're interested in helping out, please read [our contributing guidelines](CONTRIBUTING.md). - -## About - -`history` is developed and maintained by [React Training](https://reacttraining.com). If -you're interested in learning more about what React can do for your company, please -[get in touch](mailto:hello@reacttraining.com)! - -## Thanks - -A big thank-you to [BrowserStack](https://www.browserstack.com/) for providing the infrastructure that allows us to run our build in real browsers. - -Also, thanks to [Dan Shaw](https://www.npmjs.com/~dshaw) for letting us use the `history` npm package name. Thanks, Dan! diff --git a/node_modules/history/cjs/history.js b/node_modules/history/cjs/history.js deleted file mode 100644 index fcd8eba..0000000 --- a/node_modules/history/cjs/history.js +++ /dev/null @@ -1,948 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, '__esModule', { value: true }); - -function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } - -var resolvePathname = _interopDefault(require('resolve-pathname')); -var valueEqual = _interopDefault(require('value-equal')); -var warning = _interopDefault(require('tiny-warning')); -var invariant = _interopDefault(require('tiny-invariant')); - -function _extends() { - _extends = Object.assign || function (target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i]; - - for (var key in source) { - if (Object.prototype.hasOwnProperty.call(source, key)) { - target[key] = source[key]; - } - } - } - - return target; - }; - - return _extends.apply(this, arguments); -} - -function addLeadingSlash(path) { - return path.charAt(0) === '/' ? path : '/' + path; -} -function stripLeadingSlash(path) { - return path.charAt(0) === '/' ? path.substr(1) : path; -} -function hasBasename(path, prefix) { - return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1; -} -function stripBasename(path, prefix) { - return hasBasename(path, prefix) ? path.substr(prefix.length) : path; -} -function stripTrailingSlash(path) { - return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path; -} -function parsePath(path) { - var pathname = path || '/'; - var search = ''; - var hash = ''; - var hashIndex = pathname.indexOf('#'); - - if (hashIndex !== -1) { - hash = pathname.substr(hashIndex); - pathname = pathname.substr(0, hashIndex); - } - - var searchIndex = pathname.indexOf('?'); - - if (searchIndex !== -1) { - search = pathname.substr(searchIndex); - pathname = pathname.substr(0, searchIndex); - } - - return { - pathname: pathname, - search: search === '?' ? '' : search, - hash: hash === '#' ? '' : hash - }; -} -function createPath(location) { - var pathname = location.pathname, - search = location.search, - hash = location.hash; - var path = pathname || '/'; - if (search && search !== '?') path += search.charAt(0) === '?' ? search : "?" + search; - if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : "#" + hash; - return path; -} - -function createLocation(path, state, key, currentLocation) { - var location; - - if (typeof path === 'string') { - // Two-arg form: push(path, state) - location = parsePath(path); - location.state = state; - } else { - // One-arg form: push(location) - location = _extends({}, path); - if (location.pathname === undefined) location.pathname = ''; - - if (location.search) { - if (location.search.charAt(0) !== '?') location.search = '?' + location.search; - } else { - location.search = ''; - } - - if (location.hash) { - if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash; - } else { - location.hash = ''; - } - - if (state !== undefined && location.state === undefined) location.state = state; - } - - try { - location.pathname = decodeURI(location.pathname); - } catch (e) { - if (e instanceof URIError) { - throw new URIError('Pathname "' + location.pathname + '" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.'); - } else { - throw e; - } - } - - if (key) location.key = key; - - if (currentLocation) { - // Resolve incomplete/relative pathname relative to current location. - if (!location.pathname) { - location.pathname = currentLocation.pathname; - } else if (location.pathname.charAt(0) !== '/') { - location.pathname = resolvePathname(location.pathname, currentLocation.pathname); - } - } else { - // When there is no prior location and pathname is empty, set it to / - if (!location.pathname) { - location.pathname = '/'; - } - } - - return location; -} -function locationsAreEqual(a, b) { - return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state); -} - -function createTransitionManager() { - var prompt = null; - - function setPrompt(nextPrompt) { - warning(prompt == null, 'A history supports only one prompt at a time'); - prompt = nextPrompt; - return function () { - if (prompt === nextPrompt) prompt = null; - }; - } - - function confirmTransitionTo(location, action, getUserConfirmation, callback) { - // TODO: If another transition starts while we're still confirming - // the previous one, we may end up in a weird state. Figure out the - // best way to handle this. - if (prompt != null) { - var result = typeof prompt === 'function' ? prompt(location, action) : prompt; - - if (typeof result === 'string') { - if (typeof getUserConfirmation === 'function') { - getUserConfirmation(result, callback); - } else { - warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message'); - callback(true); - } - } else { - // Return false from a transition hook to cancel the transition. - callback(result !== false); - } - } else { - callback(true); - } - } - - var listeners = []; - - function appendListener(fn) { - var isActive = true; - - function listener() { - if (isActive) fn.apply(void 0, arguments); - } - - listeners.push(listener); - return function () { - isActive = false; - listeners = listeners.filter(function (item) { - return item !== listener; - }); - }; - } - - function notifyListeners() { - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - listeners.forEach(function (listener) { - return listener.apply(void 0, args); - }); - } - - return { - setPrompt: setPrompt, - confirmTransitionTo: confirmTransitionTo, - appendListener: appendListener, - notifyListeners: notifyListeners - }; -} - -var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement); -function getConfirmation(message, callback) { - callback(window.confirm(message)); // eslint-disable-line no-alert -} -/** - * Returns true if the HTML5 history API is supported. Taken from Modernizr. - * - * https://github.com/Modernizr/Modernizr/blob/master/LICENSE - * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js - * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586 - */ - -function supportsHistory() { - var ua = window.navigator.userAgent; - if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false; - return window.history && 'pushState' in window.history; -} -/** - * Returns true if browser fires popstate on hash change. - * IE10 and IE11 do not. - */ - -function supportsPopStateOnHashChange() { - return window.navigator.userAgent.indexOf('Trident') === -1; -} -/** - * Returns false if using go(n) with hash history causes a full page reload. - */ - -function supportsGoWithoutReloadUsingHash() { - return window.navigator.userAgent.indexOf('Firefox') === -1; -} -/** - * Returns true if a given popstate event is an extraneous WebKit event. - * Accounts for the fact that Chrome on iOS fires real popstate events - * containing undefined state when pressing the back button. - */ - -function isExtraneousPopstateEvent(event) { - return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1; -} - -var PopStateEvent = 'popstate'; -var HashChangeEvent = 'hashchange'; - -function getHistoryState() { - try { - return window.history.state || {}; - } catch (e) { - // IE 11 sometimes throws when accessing window.history.state - // See https://github.com/ReactTraining/history/pull/289 - return {}; - } -} -/** - * Creates a history object that uses the HTML5 history API including - * pushState, replaceState, and the popstate event. - */ - - -function createBrowserHistory(props) { - if (props === void 0) { - props = {}; - } - - !canUseDOM ? invariant(false, 'Browser history needs a DOM') : void 0; - var globalHistory = window.history; - var canUseHistory = supportsHistory(); - var needsHashChangeListener = !supportsPopStateOnHashChange(); - var _props = props, - _props$forceRefresh = _props.forceRefresh, - forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh, - _props$getUserConfirm = _props.getUserConfirmation, - getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm, - _props$keyLength = _props.keyLength, - keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength; - var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : ''; - - function getDOMLocation(historyState) { - var _ref = historyState || {}, - key = _ref.key, - state = _ref.state; - - var _window$location = window.location, - pathname = _window$location.pathname, - search = _window$location.search, - hash = _window$location.hash; - var path = pathname + search + hash; - warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path "' + path + '" to begin with "' + basename + '".'); - if (basename) path = stripBasename(path, basename); - return createLocation(path, state, key); - } - - function createKey() { - return Math.random().toString(36).substr(2, keyLength); - } - - var transitionManager = createTransitionManager(); - - function setState(nextState) { - _extends(history, nextState); - - history.length = globalHistory.length; - transitionManager.notifyListeners(history.location, history.action); - } - - function handlePopState(event) { - // Ignore extraneous popstate events in WebKit. - if (isExtraneousPopstateEvent(event)) return; - handlePop(getDOMLocation(event.state)); - } - - function handleHashChange() { - handlePop(getDOMLocation(getHistoryState())); - } - - var forceNextPop = false; - - function handlePop(location) { - if (forceNextPop) { - forceNextPop = false; - setState(); - } else { - var action = 'POP'; - transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { - if (ok) { - setState({ - action: action, - location: location - }); - } else { - revertPop(location); - } - }); - } - } - - function revertPop(fromLocation) { - var toLocation = history.location; // TODO: We could probably make this more reliable by - // keeping a list of keys we've seen in sessionStorage. - // Instead, we just default to 0 for keys we don't know. - - var toIndex = allKeys.indexOf(toLocation.key); - if (toIndex === -1) toIndex = 0; - var fromIndex = allKeys.indexOf(fromLocation.key); - if (fromIndex === -1) fromIndex = 0; - var delta = toIndex - fromIndex; - - if (delta) { - forceNextPop = true; - go(delta); - } - } - - var initialLocation = getDOMLocation(getHistoryState()); - var allKeys = [initialLocation.key]; // Public interface - - function createHref(location) { - return basename + createPath(location); - } - - function push(path, state) { - warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored'); - var action = 'PUSH'; - var location = createLocation(path, state, createKey(), history.location); - transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { - if (!ok) return; - var href = createHref(location); - var key = location.key, - state = location.state; - - if (canUseHistory) { - globalHistory.pushState({ - key: key, - state: state - }, null, href); - - if (forceRefresh) { - window.location.href = href; - } else { - var prevIndex = allKeys.indexOf(history.location.key); - var nextKeys = allKeys.slice(0, prevIndex + 1); - nextKeys.push(location.key); - allKeys = nextKeys; - setState({ - action: action, - location: location - }); - } - } else { - warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history'); - window.location.href = href; - } - }); - } - - function replace(path, state) { - warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored'); - var action = 'REPLACE'; - var location = createLocation(path, state, createKey(), history.location); - transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { - if (!ok) return; - var href = createHref(location); - var key = location.key, - state = location.state; - - if (canUseHistory) { - globalHistory.replaceState({ - key: key, - state: state - }, null, href); - - if (forceRefresh) { - window.location.replace(href); - } else { - var prevIndex = allKeys.indexOf(history.location.key); - if (prevIndex !== -1) allKeys[prevIndex] = location.key; - setState({ - action: action, - location: location - }); - } - } else { - warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history'); - window.location.replace(href); - } - }); - } - - function go(n) { - globalHistory.go(n); - } - - function goBack() { - go(-1); - } - - function goForward() { - go(1); - } - - var listenerCount = 0; - - function checkDOMListeners(delta) { - listenerCount += delta; - - if (listenerCount === 1 && delta === 1) { - window.addEventListener(PopStateEvent, handlePopState); - if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange); - } else if (listenerCount === 0) { - window.removeEventListener(PopStateEvent, handlePopState); - if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange); - } - } - - var isBlocked = false; - - function block(prompt) { - if (prompt === void 0) { - prompt = false; - } - - var unblock = transitionManager.setPrompt(prompt); - - if (!isBlocked) { - checkDOMListeners(1); - isBlocked = true; - } - - return function () { - if (isBlocked) { - isBlocked = false; - checkDOMListeners(-1); - } - - return unblock(); - }; - } - - function listen(listener) { - var unlisten = transitionManager.appendListener(listener); - checkDOMListeners(1); - return function () { - checkDOMListeners(-1); - unlisten(); - }; - } - - var history = { - length: globalHistory.length, - action: 'POP', - location: initialLocation, - createHref: createHref, - push: push, - replace: replace, - go: go, - goBack: goBack, - goForward: goForward, - block: block, - listen: listen - }; - return history; -} - -var HashChangeEvent$1 = 'hashchange'; -var HashPathCoders = { - hashbang: { - encodePath: function encodePath(path) { - return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path); - }, - decodePath: function decodePath(path) { - return path.charAt(0) === '!' ? path.substr(1) : path; - } - }, - noslash: { - encodePath: stripLeadingSlash, - decodePath: addLeadingSlash - }, - slash: { - encodePath: addLeadingSlash, - decodePath: addLeadingSlash - } -}; - -function stripHash(url) { - var hashIndex = url.indexOf('#'); - return hashIndex === -1 ? url : url.slice(0, hashIndex); -} - -function getHashPath() { - // We can't use window.location.hash here because it's not - // consistent across browsers - Firefox will pre-decode it! - var href = window.location.href; - var hashIndex = href.indexOf('#'); - return hashIndex === -1 ? '' : href.substring(hashIndex + 1); -} - -function pushHashPath(path) { - window.location.hash = path; -} - -function replaceHashPath(path) { - window.location.replace(stripHash(window.location.href) + '#' + path); -} - -function createHashHistory(props) { - if (props === void 0) { - props = {}; - } - - !canUseDOM ? invariant(false, 'Hash history needs a DOM') : void 0; - var globalHistory = window.history; - var canGoWithoutReload = supportsGoWithoutReloadUsingHash(); - var _props = props, - _props$getUserConfirm = _props.getUserConfirmation, - getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm, - _props$hashType = _props.hashType, - hashType = _props$hashType === void 0 ? 'slash' : _props$hashType; - var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : ''; - var _HashPathCoders$hashT = HashPathCoders[hashType], - encodePath = _HashPathCoders$hashT.encodePath, - decodePath = _HashPathCoders$hashT.decodePath; - - function getDOMLocation() { - var path = decodePath(getHashPath()); - warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path "' + path + '" to begin with "' + basename + '".'); - if (basename) path = stripBasename(path, basename); - return createLocation(path); - } - - var transitionManager = createTransitionManager(); - - function setState(nextState) { - _extends(history, nextState); - - history.length = globalHistory.length; - transitionManager.notifyListeners(history.location, history.action); - } - - var forceNextPop = false; - var ignorePath = null; - - function locationsAreEqual$$1(a, b) { - return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash; - } - - function handleHashChange() { - var path = getHashPath(); - var encodedPath = encodePath(path); - - if (path !== encodedPath) { - // Ensure we always have a properly-encoded hash. - replaceHashPath(encodedPath); - } else { - var location = getDOMLocation(); - var prevLocation = history.location; - if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change. - - if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace. - - ignorePath = null; - handlePop(location); - } - } - - function handlePop(location) { - if (forceNextPop) { - forceNextPop = false; - setState(); - } else { - var action = 'POP'; - transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { - if (ok) { - setState({ - action: action, - location: location - }); - } else { - revertPop(location); - } - }); - } - } - - function revertPop(fromLocation) { - var toLocation = history.location; // TODO: We could probably make this more reliable by - // keeping a list of paths we've seen in sessionStorage. - // Instead, we just default to 0 for paths we don't know. - - var toIndex = allPaths.lastIndexOf(createPath(toLocation)); - if (toIndex === -1) toIndex = 0; - var fromIndex = allPaths.lastIndexOf(createPath(fromLocation)); - if (fromIndex === -1) fromIndex = 0; - var delta = toIndex - fromIndex; - - if (delta) { - forceNextPop = true; - go(delta); - } - } // Ensure the hash is encoded properly before doing anything else. - - - var path = getHashPath(); - var encodedPath = encodePath(path); - if (path !== encodedPath) replaceHashPath(encodedPath); - var initialLocation = getDOMLocation(); - var allPaths = [createPath(initialLocation)]; // Public interface - - function createHref(location) { - var baseTag = document.querySelector('base'); - var href = ''; - - if (baseTag && baseTag.getAttribute('href')) { - href = stripHash(window.location.href); - } - - return href + '#' + encodePath(basename + createPath(location)); - } - - function push(path, state) { - warning(state === undefined, 'Hash history cannot push state; it is ignored'); - var action = 'PUSH'; - var location = createLocation(path, undefined, undefined, history.location); - transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { - if (!ok) return; - var path = createPath(location); - var encodedPath = encodePath(basename + path); - var hashChanged = getHashPath() !== encodedPath; - - if (hashChanged) { - // We cannot tell if a hashchange was caused by a PUSH, so we'd - // rather setState here and ignore the hashchange. The caveat here - // is that other hash histories in the page will consider it a POP. - ignorePath = path; - pushHashPath(encodedPath); - var prevIndex = allPaths.lastIndexOf(createPath(history.location)); - var nextPaths = allPaths.slice(0, prevIndex + 1); - nextPaths.push(path); - allPaths = nextPaths; - setState({ - action: action, - location: location - }); - } else { - warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack'); - setState(); - } - }); - } - - function replace(path, state) { - warning(state === undefined, 'Hash history cannot replace state; it is ignored'); - var action = 'REPLACE'; - var location = createLocation(path, undefined, undefined, history.location); - transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { - if (!ok) return; - var path = createPath(location); - var encodedPath = encodePath(basename + path); - var hashChanged = getHashPath() !== encodedPath; - - if (hashChanged) { - // We cannot tell if a hashchange was caused by a REPLACE, so we'd - // rather setState here and ignore the hashchange. The caveat here - // is that other hash histories in the page will consider it a POP. - ignorePath = path; - replaceHashPath(encodedPath); - } - - var prevIndex = allPaths.indexOf(createPath(history.location)); - if (prevIndex !== -1) allPaths[prevIndex] = path; - setState({ - action: action, - location: location - }); - }); - } - - function go(n) { - warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser'); - globalHistory.go(n); - } - - function goBack() { - go(-1); - } - - function goForward() { - go(1); - } - - var listenerCount = 0; - - function checkDOMListeners(delta) { - listenerCount += delta; - - if (listenerCount === 1 && delta === 1) { - window.addEventListener(HashChangeEvent$1, handleHashChange); - } else if (listenerCount === 0) { - window.removeEventListener(HashChangeEvent$1, handleHashChange); - } - } - - var isBlocked = false; - - function block(prompt) { - if (prompt === void 0) { - prompt = false; - } - - var unblock = transitionManager.setPrompt(prompt); - - if (!isBlocked) { - checkDOMListeners(1); - isBlocked = true; - } - - return function () { - if (isBlocked) { - isBlocked = false; - checkDOMListeners(-1); - } - - return unblock(); - }; - } - - function listen(listener) { - var unlisten = transitionManager.appendListener(listener); - checkDOMListeners(1); - return function () { - checkDOMListeners(-1); - unlisten(); - }; - } - - var history = { - length: globalHistory.length, - action: 'POP', - location: initialLocation, - createHref: createHref, - push: push, - replace: replace, - go: go, - goBack: goBack, - goForward: goForward, - block: block, - listen: listen - }; - return history; -} - -function clamp(n, lowerBound, upperBound) { - return Math.min(Math.max(n, lowerBound), upperBound); -} -/** - * Creates a history object that stores locations in memory. - */ - - -function createMemoryHistory(props) { - if (props === void 0) { - props = {}; - } - - var _props = props, - getUserConfirmation = _props.getUserConfirmation, - _props$initialEntries = _props.initialEntries, - initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries, - _props$initialIndex = _props.initialIndex, - initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex, - _props$keyLength = _props.keyLength, - keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength; - var transitionManager = createTransitionManager(); - - function setState(nextState) { - _extends(history, nextState); - - history.length = history.entries.length; - transitionManager.notifyListeners(history.location, history.action); - } - - function createKey() { - return Math.random().toString(36).substr(2, keyLength); - } - - var index = clamp(initialIndex, 0, initialEntries.length - 1); - var entries = initialEntries.map(function (entry) { - return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey()); - }); // Public interface - - var createHref = createPath; - - function push(path, state) { - warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored'); - var action = 'PUSH'; - var location = createLocation(path, state, createKey(), history.location); - transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { - if (!ok) return; - var prevIndex = history.index; - var nextIndex = prevIndex + 1; - var nextEntries = history.entries.slice(0); - - if (nextEntries.length > nextIndex) { - nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location); - } else { - nextEntries.push(location); - } - - setState({ - action: action, - location: location, - index: nextIndex, - entries: nextEntries - }); - }); - } - - function replace(path, state) { - warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored'); - var action = 'REPLACE'; - var location = createLocation(path, state, createKey(), history.location); - transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { - if (!ok) return; - history.entries[history.index] = location; - setState({ - action: action, - location: location - }); - }); - } - - function go(n) { - var nextIndex = clamp(history.index + n, 0, history.entries.length - 1); - var action = 'POP'; - var location = history.entries[nextIndex]; - transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { - if (ok) { - setState({ - action: action, - location: location, - index: nextIndex - }); - } else { - // Mimic the behavior of DOM histories by - // causing a render after a cancelled POP. - setState(); - } - }); - } - - function goBack() { - go(-1); - } - - function goForward() { - go(1); - } - - function canGo(n) { - var nextIndex = history.index + n; - return nextIndex >= 0 && nextIndex < history.entries.length; - } - - function block(prompt) { - if (prompt === void 0) { - prompt = false; - } - - return transitionManager.setPrompt(prompt); - } - - function listen(listener) { - return transitionManager.appendListener(listener); - } - - var history = { - length: entries.length, - action: 'POP', - location: entries[index], - index: index, - entries: entries, - createHref: createHref, - push: push, - replace: replace, - go: go, - goBack: goBack, - goForward: goForward, - canGo: canGo, - block: block, - listen: listen - }; - return history; -} - -exports.createBrowserHistory = createBrowserHistory; -exports.createHashHistory = createHashHistory; -exports.createMemoryHistory = createMemoryHistory; -exports.createLocation = createLocation; -exports.locationsAreEqual = locationsAreEqual; -exports.parsePath = parsePath; -exports.createPath = createPath; diff --git a/node_modules/history/cjs/history.min.js b/node_modules/history/cjs/history.min.js deleted file mode 100644 index f5858d8..0000000 --- a/node_modules/history/cjs/history.min.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";function _interopDefault(t){return t&&"object"==typeof t&&"default"in t?t.default:t}Object.defineProperty(exports,"__esModule",{value:!0});var resolvePathname=_interopDefault(require("resolve-pathname")),valueEqual=_interopDefault(require("value-equal"));require("tiny-warning");var invariant=_interopDefault(require("tiny-invariant"));function _extends(){return(_extends=Object.assign||function(t){for(var n=1;nn?e.splice(n,e.length-n,a):e.push(a),u({action:"PUSH",location:a,index:n,entries:e})}})},replace:function(t,n){var e="REPLACE",a=createLocation(t,n,f(),g.location);h.confirmTransitionTo(a,e,r,function(t){t&&(g.entries[g.index]=a,u({action:e,location:a}))})},go:p,goBack:function(){p(-1)},goForward:function(){p(1)},canGo:function(t){var n=g.index+t;return 0<=n&&n 0 - ? format.replace(/%s/g, function() { - return subs[index++]; - }) - : format); - - if (typeof console !== 'undefined') { - console.error(message); - } - - try { - // --- Welcome to debugging history --- - // This error was thrown as a convenience so that you can use the - // stack trace to find the callsite that triggered this warning. - throw new Error(message); - } catch (e) {} - }; -} - -export default function(member) { - printWarning( - 'Please use `import { %s } from "history"` instead of `import %s from "history/es/%s"`. ' + - 'Support for the latter will be removed in the next major release.', - [member, member] - ); -} diff --git a/node_modules/history/esm/history.js b/node_modules/history/esm/history.js deleted file mode 100644 index df67820..0000000 --- a/node_modules/history/esm/history.js +++ /dev/null @@ -1,919 +0,0 @@ -import _extends from '@babel/runtime/helpers/esm/extends'; -import resolvePathname from 'resolve-pathname'; -import valueEqual from 'value-equal'; -import warning from 'tiny-warning'; -import invariant from 'tiny-invariant'; - -function addLeadingSlash(path) { - return path.charAt(0) === '/' ? path : '/' + path; -} -function stripLeadingSlash(path) { - return path.charAt(0) === '/' ? path.substr(1) : path; -} -function hasBasename(path, prefix) { - return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1; -} -function stripBasename(path, prefix) { - return hasBasename(path, prefix) ? path.substr(prefix.length) : path; -} -function stripTrailingSlash(path) { - return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path; -} -function parsePath(path) { - var pathname = path || '/'; - var search = ''; - var hash = ''; - var hashIndex = pathname.indexOf('#'); - - if (hashIndex !== -1) { - hash = pathname.substr(hashIndex); - pathname = pathname.substr(0, hashIndex); - } - - var searchIndex = pathname.indexOf('?'); - - if (searchIndex !== -1) { - search = pathname.substr(searchIndex); - pathname = pathname.substr(0, searchIndex); - } - - return { - pathname: pathname, - search: search === '?' ? '' : search, - hash: hash === '#' ? '' : hash - }; -} -function createPath(location) { - var pathname = location.pathname, - search = location.search, - hash = location.hash; - var path = pathname || '/'; - if (search && search !== '?') path += search.charAt(0) === '?' ? search : "?" + search; - if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : "#" + hash; - return path; -} - -function createLocation(path, state, key, currentLocation) { - var location; - - if (typeof path === 'string') { - // Two-arg form: push(path, state) - location = parsePath(path); - location.state = state; - } else { - // One-arg form: push(location) - location = _extends({}, path); - if (location.pathname === undefined) location.pathname = ''; - - if (location.search) { - if (location.search.charAt(0) !== '?') location.search = '?' + location.search; - } else { - location.search = ''; - } - - if (location.hash) { - if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash; - } else { - location.hash = ''; - } - - if (state !== undefined && location.state === undefined) location.state = state; - } - - try { - location.pathname = decodeURI(location.pathname); - } catch (e) { - if (e instanceof URIError) { - throw new URIError('Pathname "' + location.pathname + '" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.'); - } else { - throw e; - } - } - - if (key) location.key = key; - - if (currentLocation) { - // Resolve incomplete/relative pathname relative to current location. - if (!location.pathname) { - location.pathname = currentLocation.pathname; - } else if (location.pathname.charAt(0) !== '/') { - location.pathname = resolvePathname(location.pathname, currentLocation.pathname); - } - } else { - // When there is no prior location and pathname is empty, set it to / - if (!location.pathname) { - location.pathname = '/'; - } - } - - return location; -} -function locationsAreEqual(a, b) { - return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state); -} - -function createTransitionManager() { - var prompt = null; - - function setPrompt(nextPrompt) { - process.env.NODE_ENV !== "production" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0; - prompt = nextPrompt; - return function () { - if (prompt === nextPrompt) prompt = null; - }; - } - - function confirmTransitionTo(location, action, getUserConfirmation, callback) { - // TODO: If another transition starts while we're still confirming - // the previous one, we may end up in a weird state. Figure out the - // best way to handle this. - if (prompt != null) { - var result = typeof prompt === 'function' ? prompt(location, action) : prompt; - - if (typeof result === 'string') { - if (typeof getUserConfirmation === 'function') { - getUserConfirmation(result, callback); - } else { - process.env.NODE_ENV !== "production" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0; - callback(true); - } - } else { - // Return false from a transition hook to cancel the transition. - callback(result !== false); - } - } else { - callback(true); - } - } - - var listeners = []; - - function appendListener(fn) { - var isActive = true; - - function listener() { - if (isActive) fn.apply(void 0, arguments); - } - - listeners.push(listener); - return function () { - isActive = false; - listeners = listeners.filter(function (item) { - return item !== listener; - }); - }; - } - - function notifyListeners() { - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - listeners.forEach(function (listener) { - return listener.apply(void 0, args); - }); - } - - return { - setPrompt: setPrompt, - confirmTransitionTo: confirmTransitionTo, - appendListener: appendListener, - notifyListeners: notifyListeners - }; -} - -var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement); -function getConfirmation(message, callback) { - callback(window.confirm(message)); // eslint-disable-line no-alert -} -/** - * Returns true if the HTML5 history API is supported. Taken from Modernizr. - * - * https://github.com/Modernizr/Modernizr/blob/master/LICENSE - * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js - * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586 - */ - -function supportsHistory() { - var ua = window.navigator.userAgent; - if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false; - return window.history && 'pushState' in window.history; -} -/** - * Returns true if browser fires popstate on hash change. - * IE10 and IE11 do not. - */ - -function supportsPopStateOnHashChange() { - return window.navigator.userAgent.indexOf('Trident') === -1; -} -/** - * Returns false if using go(n) with hash history causes a full page reload. - */ - -function supportsGoWithoutReloadUsingHash() { - return window.navigator.userAgent.indexOf('Firefox') === -1; -} -/** - * Returns true if a given popstate event is an extraneous WebKit event. - * Accounts for the fact that Chrome on iOS fires real popstate events - * containing undefined state when pressing the back button. - */ - -function isExtraneousPopstateEvent(event) { - return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1; -} - -var PopStateEvent = 'popstate'; -var HashChangeEvent = 'hashchange'; - -function getHistoryState() { - try { - return window.history.state || {}; - } catch (e) { - // IE 11 sometimes throws when accessing window.history.state - // See https://github.com/ReactTraining/history/pull/289 - return {}; - } -} -/** - * Creates a history object that uses the HTML5 history API including - * pushState, replaceState, and the popstate event. - */ - - -function createBrowserHistory(props) { - if (props === void 0) { - props = {}; - } - - !canUseDOM ? process.env.NODE_ENV !== "production" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0; - var globalHistory = window.history; - var canUseHistory = supportsHistory(); - var needsHashChangeListener = !supportsPopStateOnHashChange(); - var _props = props, - _props$forceRefresh = _props.forceRefresh, - forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh, - _props$getUserConfirm = _props.getUserConfirmation, - getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm, - _props$keyLength = _props.keyLength, - keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength; - var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : ''; - - function getDOMLocation(historyState) { - var _ref = historyState || {}, - key = _ref.key, - state = _ref.state; - - var _window$location = window.location, - pathname = _window$location.pathname, - search = _window$location.search, - hash = _window$location.hash; - var path = pathname + search + hash; - process.env.NODE_ENV !== "production" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path "' + path + '" to begin with "' + basename + '".') : void 0; - if (basename) path = stripBasename(path, basename); - return createLocation(path, state, key); - } - - function createKey() { - return Math.random().toString(36).substr(2, keyLength); - } - - var transitionManager = createTransitionManager(); - - function setState(nextState) { - _extends(history, nextState); - - history.length = globalHistory.length; - transitionManager.notifyListeners(history.location, history.action); - } - - function handlePopState(event) { - // Ignore extraneous popstate events in WebKit. - if (isExtraneousPopstateEvent(event)) return; - handlePop(getDOMLocation(event.state)); - } - - function handleHashChange() { - handlePop(getDOMLocation(getHistoryState())); - } - - var forceNextPop = false; - - function handlePop(location) { - if (forceNextPop) { - forceNextPop = false; - setState(); - } else { - var action = 'POP'; - transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { - if (ok) { - setState({ - action: action, - location: location - }); - } else { - revertPop(location); - } - }); - } - } - - function revertPop(fromLocation) { - var toLocation = history.location; // TODO: We could probably make this more reliable by - // keeping a list of keys we've seen in sessionStorage. - // Instead, we just default to 0 for keys we don't know. - - var toIndex = allKeys.indexOf(toLocation.key); - if (toIndex === -1) toIndex = 0; - var fromIndex = allKeys.indexOf(fromLocation.key); - if (fromIndex === -1) fromIndex = 0; - var delta = toIndex - fromIndex; - - if (delta) { - forceNextPop = true; - go(delta); - } - } - - var initialLocation = getDOMLocation(getHistoryState()); - var allKeys = [initialLocation.key]; // Public interface - - function createHref(location) { - return basename + createPath(location); - } - - function push(path, state) { - process.env.NODE_ENV !== "production" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0; - var action = 'PUSH'; - var location = createLocation(path, state, createKey(), history.location); - transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { - if (!ok) return; - var href = createHref(location); - var key = location.key, - state = location.state; - - if (canUseHistory) { - globalHistory.pushState({ - key: key, - state: state - }, null, href); - - if (forceRefresh) { - window.location.href = href; - } else { - var prevIndex = allKeys.indexOf(history.location.key); - var nextKeys = allKeys.slice(0, prevIndex + 1); - nextKeys.push(location.key); - allKeys = nextKeys; - setState({ - action: action, - location: location - }); - } - } else { - process.env.NODE_ENV !== "production" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0; - window.location.href = href; - } - }); - } - - function replace(path, state) { - process.env.NODE_ENV !== "production" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0; - var action = 'REPLACE'; - var location = createLocation(path, state, createKey(), history.location); - transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { - if (!ok) return; - var href = createHref(location); - var key = location.key, - state = location.state; - - if (canUseHistory) { - globalHistory.replaceState({ - key: key, - state: state - }, null, href); - - if (forceRefresh) { - window.location.replace(href); - } else { - var prevIndex = allKeys.indexOf(history.location.key); - if (prevIndex !== -1) allKeys[prevIndex] = location.key; - setState({ - action: action, - location: location - }); - } - } else { - process.env.NODE_ENV !== "production" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0; - window.location.replace(href); - } - }); - } - - function go(n) { - globalHistory.go(n); - } - - function goBack() { - go(-1); - } - - function goForward() { - go(1); - } - - var listenerCount = 0; - - function checkDOMListeners(delta) { - listenerCount += delta; - - if (listenerCount === 1 && delta === 1) { - window.addEventListener(PopStateEvent, handlePopState); - if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange); - } else if (listenerCount === 0) { - window.removeEventListener(PopStateEvent, handlePopState); - if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange); - } - } - - var isBlocked = false; - - function block(prompt) { - if (prompt === void 0) { - prompt = false; - } - - var unblock = transitionManager.setPrompt(prompt); - - if (!isBlocked) { - checkDOMListeners(1); - isBlocked = true; - } - - return function () { - if (isBlocked) { - isBlocked = false; - checkDOMListeners(-1); - } - - return unblock(); - }; - } - - function listen(listener) { - var unlisten = transitionManager.appendListener(listener); - checkDOMListeners(1); - return function () { - checkDOMListeners(-1); - unlisten(); - }; - } - - var history = { - length: globalHistory.length, - action: 'POP', - location: initialLocation, - createHref: createHref, - push: push, - replace: replace, - go: go, - goBack: goBack, - goForward: goForward, - block: block, - listen: listen - }; - return history; -} - -var HashChangeEvent$1 = 'hashchange'; -var HashPathCoders = { - hashbang: { - encodePath: function encodePath(path) { - return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path); - }, - decodePath: function decodePath(path) { - return path.charAt(0) === '!' ? path.substr(1) : path; - } - }, - noslash: { - encodePath: stripLeadingSlash, - decodePath: addLeadingSlash - }, - slash: { - encodePath: addLeadingSlash, - decodePath: addLeadingSlash - } -}; - -function stripHash(url) { - var hashIndex = url.indexOf('#'); - return hashIndex === -1 ? url : url.slice(0, hashIndex); -} - -function getHashPath() { - // We can't use window.location.hash here because it's not - // consistent across browsers - Firefox will pre-decode it! - var href = window.location.href; - var hashIndex = href.indexOf('#'); - return hashIndex === -1 ? '' : href.substring(hashIndex + 1); -} - -function pushHashPath(path) { - window.location.hash = path; -} - -function replaceHashPath(path) { - window.location.replace(stripHash(window.location.href) + '#' + path); -} - -function createHashHistory(props) { - if (props === void 0) { - props = {}; - } - - !canUseDOM ? process.env.NODE_ENV !== "production" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0; - var globalHistory = window.history; - var canGoWithoutReload = supportsGoWithoutReloadUsingHash(); - var _props = props, - _props$getUserConfirm = _props.getUserConfirmation, - getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm, - _props$hashType = _props.hashType, - hashType = _props$hashType === void 0 ? 'slash' : _props$hashType; - var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : ''; - var _HashPathCoders$hashT = HashPathCoders[hashType], - encodePath = _HashPathCoders$hashT.encodePath, - decodePath = _HashPathCoders$hashT.decodePath; - - function getDOMLocation() { - var path = decodePath(getHashPath()); - process.env.NODE_ENV !== "production" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path "' + path + '" to begin with "' + basename + '".') : void 0; - if (basename) path = stripBasename(path, basename); - return createLocation(path); - } - - var transitionManager = createTransitionManager(); - - function setState(nextState) { - _extends(history, nextState); - - history.length = globalHistory.length; - transitionManager.notifyListeners(history.location, history.action); - } - - var forceNextPop = false; - var ignorePath = null; - - function locationsAreEqual$$1(a, b) { - return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash; - } - - function handleHashChange() { - var path = getHashPath(); - var encodedPath = encodePath(path); - - if (path !== encodedPath) { - // Ensure we always have a properly-encoded hash. - replaceHashPath(encodedPath); - } else { - var location = getDOMLocation(); - var prevLocation = history.location; - if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change. - - if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace. - - ignorePath = null; - handlePop(location); - } - } - - function handlePop(location) { - if (forceNextPop) { - forceNextPop = false; - setState(); - } else { - var action = 'POP'; - transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { - if (ok) { - setState({ - action: action, - location: location - }); - } else { - revertPop(location); - } - }); - } - } - - function revertPop(fromLocation) { - var toLocation = history.location; // TODO: We could probably make this more reliable by - // keeping a list of paths we've seen in sessionStorage. - // Instead, we just default to 0 for paths we don't know. - - var toIndex = allPaths.lastIndexOf(createPath(toLocation)); - if (toIndex === -1) toIndex = 0; - var fromIndex = allPaths.lastIndexOf(createPath(fromLocation)); - if (fromIndex === -1) fromIndex = 0; - var delta = toIndex - fromIndex; - - if (delta) { - forceNextPop = true; - go(delta); - } - } // Ensure the hash is encoded properly before doing anything else. - - - var path = getHashPath(); - var encodedPath = encodePath(path); - if (path !== encodedPath) replaceHashPath(encodedPath); - var initialLocation = getDOMLocation(); - var allPaths = [createPath(initialLocation)]; // Public interface - - function createHref(location) { - var baseTag = document.querySelector('base'); - var href = ''; - - if (baseTag && baseTag.getAttribute('href')) { - href = stripHash(window.location.href); - } - - return href + '#' + encodePath(basename + createPath(location)); - } - - function push(path, state) { - process.env.NODE_ENV !== "production" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0; - var action = 'PUSH'; - var location = createLocation(path, undefined, undefined, history.location); - transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { - if (!ok) return; - var path = createPath(location); - var encodedPath = encodePath(basename + path); - var hashChanged = getHashPath() !== encodedPath; - - if (hashChanged) { - // We cannot tell if a hashchange was caused by a PUSH, so we'd - // rather setState here and ignore the hashchange. The caveat here - // is that other hash histories in the page will consider it a POP. - ignorePath = path; - pushHashPath(encodedPath); - var prevIndex = allPaths.lastIndexOf(createPath(history.location)); - var nextPaths = allPaths.slice(0, prevIndex + 1); - nextPaths.push(path); - allPaths = nextPaths; - setState({ - action: action, - location: location - }); - } else { - process.env.NODE_ENV !== "production" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0; - setState(); - } - }); - } - - function replace(path, state) { - process.env.NODE_ENV !== "production" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0; - var action = 'REPLACE'; - var location = createLocation(path, undefined, undefined, history.location); - transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { - if (!ok) return; - var path = createPath(location); - var encodedPath = encodePath(basename + path); - var hashChanged = getHashPath() !== encodedPath; - - if (hashChanged) { - // We cannot tell if a hashchange was caused by a REPLACE, so we'd - // rather setState here and ignore the hashchange. The caveat here - // is that other hash histories in the page will consider it a POP. - ignorePath = path; - replaceHashPath(encodedPath); - } - - var prevIndex = allPaths.indexOf(createPath(history.location)); - if (prevIndex !== -1) allPaths[prevIndex] = path; - setState({ - action: action, - location: location - }); - }); - } - - function go(n) { - process.env.NODE_ENV !== "production" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0; - globalHistory.go(n); - } - - function goBack() { - go(-1); - } - - function goForward() { - go(1); - } - - var listenerCount = 0; - - function checkDOMListeners(delta) { - listenerCount += delta; - - if (listenerCount === 1 && delta === 1) { - window.addEventListener(HashChangeEvent$1, handleHashChange); - } else if (listenerCount === 0) { - window.removeEventListener(HashChangeEvent$1, handleHashChange); - } - } - - var isBlocked = false; - - function block(prompt) { - if (prompt === void 0) { - prompt = false; - } - - var unblock = transitionManager.setPrompt(prompt); - - if (!isBlocked) { - checkDOMListeners(1); - isBlocked = true; - } - - return function () { - if (isBlocked) { - isBlocked = false; - checkDOMListeners(-1); - } - - return unblock(); - }; - } - - function listen(listener) { - var unlisten = transitionManager.appendListener(listener); - checkDOMListeners(1); - return function () { - checkDOMListeners(-1); - unlisten(); - }; - } - - var history = { - length: globalHistory.length, - action: 'POP', - location: initialLocation, - createHref: createHref, - push: push, - replace: replace, - go: go, - goBack: goBack, - goForward: goForward, - block: block, - listen: listen - }; - return history; -} - -function clamp(n, lowerBound, upperBound) { - return Math.min(Math.max(n, lowerBound), upperBound); -} -/** - * Creates a history object that stores locations in memory. - */ - - -function createMemoryHistory(props) { - if (props === void 0) { - props = {}; - } - - var _props = props, - getUserConfirmation = _props.getUserConfirmation, - _props$initialEntries = _props.initialEntries, - initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries, - _props$initialIndex = _props.initialIndex, - initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex, - _props$keyLength = _props.keyLength, - keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength; - var transitionManager = createTransitionManager(); - - function setState(nextState) { - _extends(history, nextState); - - history.length = history.entries.length; - transitionManager.notifyListeners(history.location, history.action); - } - - function createKey() { - return Math.random().toString(36).substr(2, keyLength); - } - - var index = clamp(initialIndex, 0, initialEntries.length - 1); - var entries = initialEntries.map(function (entry) { - return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey()); - }); // Public interface - - var createHref = createPath; - - function push(path, state) { - process.env.NODE_ENV !== "production" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0; - var action = 'PUSH'; - var location = createLocation(path, state, createKey(), history.location); - transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { - if (!ok) return; - var prevIndex = history.index; - var nextIndex = prevIndex + 1; - var nextEntries = history.entries.slice(0); - - if (nextEntries.length > nextIndex) { - nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location); - } else { - nextEntries.push(location); - } - - setState({ - action: action, - location: location, - index: nextIndex, - entries: nextEntries - }); - }); - } - - function replace(path, state) { - process.env.NODE_ENV !== "production" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0; - var action = 'REPLACE'; - var location = createLocation(path, state, createKey(), history.location); - transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { - if (!ok) return; - history.entries[history.index] = location; - setState({ - action: action, - location: location - }); - }); - } - - function go(n) { - var nextIndex = clamp(history.index + n, 0, history.entries.length - 1); - var action = 'POP'; - var location = history.entries[nextIndex]; - transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { - if (ok) { - setState({ - action: action, - location: location, - index: nextIndex - }); - } else { - // Mimic the behavior of DOM histories by - // causing a render after a cancelled POP. - setState(); - } - }); - } - - function goBack() { - go(-1); - } - - function goForward() { - go(1); - } - - function canGo(n) { - var nextIndex = history.index + n; - return nextIndex >= 0 && nextIndex < history.entries.length; - } - - function block(prompt) { - if (prompt === void 0) { - prompt = false; - } - - return transitionManager.setPrompt(prompt); - } - - function listen(listener) { - return transitionManager.appendListener(listener); - } - - var history = { - length: entries.length, - action: 'POP', - location: entries[index], - index: index, - entries: entries, - createHref: createHref, - push: push, - replace: replace, - go: go, - goBack: goBack, - goForward: goForward, - canGo: canGo, - block: block, - listen: listen - }; - return history; -} - -export { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath }; diff --git a/node_modules/history/index.js b/node_modules/history/index.js deleted file mode 100644 index 1e506e5..0000000 --- a/node_modules/history/index.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -if (process.env.NODE_ENV === 'production') { - module.exports = require('./cjs/history.min.js'); -} else { - module.exports = require('./cjs/history.js'); -} diff --git a/node_modules/history/package.json b/node_modules/history/package.json deleted file mode 100644 index 7276dc8..0000000 --- a/node_modules/history/package.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "_from": "history@^4.9.0", - "_id": "history@4.10.1", - "_inBundle": false, - "_integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", - "_location": "/history", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "history@^4.9.0", - "name": "history", - "escapedName": "history", - "rawSpec": "^4.9.0", - "saveSpec": null, - "fetchSpec": "^4.9.0" - }, - "_requiredBy": [ - "/react-router", - "/react-router-dom" - ], - "_resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", - "_shasum": "33371a65e3a83b267434e2b3f3b1b4c58aad4cf3", - "_spec": "history@^4.9.0", - "_where": "G:\\_comp_\\odsc\\orig\\AllNotes\\node_modules\\react-router-dom", - "author": { - "name": "Michael Jackson" - }, - "browserify": { - "transform": [ - "loose-envify" - ] - }, - "bugs": { - "url": "https://github.com/ReactTraining/history/issues" - }, - "bundleDependencies": false, - "dependencies": { - "@babel/runtime": "^7.1.2", - "loose-envify": "^1.2.0", - "resolve-pathname": "^3.0.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0", - "value-equal": "^1.0.1" - }, - "deprecated": false, - "description": "Manage session history with JavaScript", - "devDependencies": { - "@babel/core": "^7.1.2", - "@babel/plugin-transform-object-assign": "^7.0.0", - "@babel/plugin-transform-runtime": "^7.1.0", - "@babel/preset-env": "^7.1.0", - "babel-core": "^7.0.0-bridge.0", - "babel-eslint": "^7.0.0", - "babel-loader": "^8.0.4", - "babel-plugin-dev-expression": "^0.2.1", - "eslint": "^3.3.0", - "eslint-plugin-import": "^2.0.0", - "expect": "^21.0.0", - "jest-mock": "^21.0.0", - "karma": "^3.1.3", - "karma-browserstack-launcher": "^1.3.0", - "karma-chrome-launcher": "^2.2.0", - "karma-firefox-launcher": "^1.1.0", - "karma-mocha": "^1.3.0", - "karma-mocha-reporter": "^2.2.5", - "karma-sourcemap-loader": "^0.3.7", - "karma-webpack": "^3.0.5", - "mocha": "^5.2.0", - "rollup": "^0.66.6", - "rollup-plugin-babel": "^4.0.3", - "rollup-plugin-commonjs": "^9.2.0", - "rollup-plugin-node-resolve": "^3.4.0", - "rollup-plugin-replace": "^2.1.0", - "rollup-plugin-size-snapshot": "^0.7.0", - "rollup-plugin-uglify": "^6.0.0", - "webpack": "^3.12.0" - }, - "files": [ - "DOMUtils.js", - "ExecutionEnvironment.js", - "LocationUtils.js", - "PathUtils.js", - "cjs", - "createBrowserHistory.js", - "createHashHistory.js", - "createMemoryHistory.js", - "createTransitionManager.js", - "es", - "esm", - "umd", - "warnAboutDeprecatedCJSRequire.js" - ], - "homepage": "https://github.com/ReactTraining/history#readme", - "keywords": [ - "history", - "location" - ], - "license": "MIT", - "main": "index.js", - "module": "esm/history.js", - "name": "history", - "repository": { - "type": "git", - "url": "git+https://github.com/ReactTraining/history.git" - }, - "scripts": { - "build": "rollup -c", - "clean": "git clean -fdX .", - "lint": "eslint modules", - "prepublishOnly": "yarn build", - "test": "karma start --single-run" - }, - "sideEffects": false, - "unpkg": "umd/history.js", - "version": "4.10.1" -} diff --git a/node_modules/history/umd/history.js b/node_modules/history/umd/history.js deleted file mode 100644 index 80e4ff6..0000000 --- a/node_modules/history/umd/history.js +++ /dev/null @@ -1,1085 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : - typeof define === 'function' && define.amd ? define(['exports'], factory) : - (factory((global.History = {}))); -}(this, (function (exports) { 'use strict'; - - function _extends() { - _extends = Object.assign || function (target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i]; - - for (var key in source) { - if (Object.prototype.hasOwnProperty.call(source, key)) { - target[key] = source[key]; - } - } - } - - return target; - }; - - return _extends.apply(this, arguments); - } - - function isAbsolute(pathname) { - return pathname.charAt(0) === '/'; - } - - // About 1.5x faster than the two-arg version of Array#splice() - function spliceOne(list, index) { - for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) { - list[i] = list[k]; - } - - list.pop(); - } - - // This implementation is based heavily on node's url.parse - function resolvePathname(to, from) { - if (from === undefined) from = ''; - - var toParts = (to && to.split('/')) || []; - var fromParts = (from && from.split('/')) || []; - - var isToAbs = to && isAbsolute(to); - var isFromAbs = from && isAbsolute(from); - var mustEndAbs = isToAbs || isFromAbs; - - if (to && isAbsolute(to)) { - // to is absolute - fromParts = toParts; - } else if (toParts.length) { - // to is relative, drop the filename - fromParts.pop(); - fromParts = fromParts.concat(toParts); - } - - if (!fromParts.length) return '/'; - - var hasTrailingSlash; - if (fromParts.length) { - var last = fromParts[fromParts.length - 1]; - hasTrailingSlash = last === '.' || last === '..' || last === ''; - } else { - hasTrailingSlash = false; - } - - var up = 0; - for (var i = fromParts.length; i >= 0; i--) { - var part = fromParts[i]; - - if (part === '.') { - spliceOne(fromParts, i); - } else if (part === '..') { - spliceOne(fromParts, i); - up++; - } else if (up) { - spliceOne(fromParts, i); - up--; - } - } - - if (!mustEndAbs) for (; up--; up) fromParts.unshift('..'); - - if ( - mustEndAbs && - fromParts[0] !== '' && - (!fromParts[0] || !isAbsolute(fromParts[0])) - ) - fromParts.unshift(''); - - var result = fromParts.join('/'); - - if (hasTrailingSlash && result.substr(-1) !== '/') result += '/'; - - return result; - } - - function valueOf(obj) { - return obj.valueOf ? obj.valueOf() : Object.prototype.valueOf.call(obj); - } - - function valueEqual(a, b) { - // Test for strict equality first. - if (a === b) return true; - - // Otherwise, if either of them == null they are not equal. - if (a == null || b == null) return false; - - if (Array.isArray(a)) { - return ( - Array.isArray(b) && - a.length === b.length && - a.every(function(item, index) { - return valueEqual(item, b[index]); - }) - ); - } - - if (typeof a === 'object' || typeof b === 'object') { - var aValue = valueOf(a); - var bValue = valueOf(b); - - if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue); - - return Object.keys(Object.assign({}, a, b)).every(function(key) { - return valueEqual(a[key], b[key]); - }); - } - - return false; - } - - function addLeadingSlash(path) { - return path.charAt(0) === '/' ? path : '/' + path; - } - function stripLeadingSlash(path) { - return path.charAt(0) === '/' ? path.substr(1) : path; - } - function hasBasename(path, prefix) { - return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1; - } - function stripBasename(path, prefix) { - return hasBasename(path, prefix) ? path.substr(prefix.length) : path; - } - function stripTrailingSlash(path) { - return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path; - } - function parsePath(path) { - var pathname = path || '/'; - var search = ''; - var hash = ''; - var hashIndex = pathname.indexOf('#'); - - if (hashIndex !== -1) { - hash = pathname.substr(hashIndex); - pathname = pathname.substr(0, hashIndex); - } - - var searchIndex = pathname.indexOf('?'); - - if (searchIndex !== -1) { - search = pathname.substr(searchIndex); - pathname = pathname.substr(0, searchIndex); - } - - return { - pathname: pathname, - search: search === '?' ? '' : search, - hash: hash === '#' ? '' : hash - }; - } - function createPath(location) { - var pathname = location.pathname, - search = location.search, - hash = location.hash; - var path = pathname || '/'; - if (search && search !== '?') path += search.charAt(0) === '?' ? search : "?" + search; - if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : "#" + hash; - return path; - } - - function createLocation(path, state, key, currentLocation) { - var location; - - if (typeof path === 'string') { - // Two-arg form: push(path, state) - location = parsePath(path); - location.state = state; - } else { - // One-arg form: push(location) - location = _extends({}, path); - if (location.pathname === undefined) location.pathname = ''; - - if (location.search) { - if (location.search.charAt(0) !== '?') location.search = '?' + location.search; - } else { - location.search = ''; - } - - if (location.hash) { - if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash; - } else { - location.hash = ''; - } - - if (state !== undefined && location.state === undefined) location.state = state; - } - - try { - location.pathname = decodeURI(location.pathname); - } catch (e) { - if (e instanceof URIError) { - throw new URIError('Pathname "' + location.pathname + '" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.'); - } else { - throw e; - } - } - - if (key) location.key = key; - - if (currentLocation) { - // Resolve incomplete/relative pathname relative to current location. - if (!location.pathname) { - location.pathname = currentLocation.pathname; - } else if (location.pathname.charAt(0) !== '/') { - location.pathname = resolvePathname(location.pathname, currentLocation.pathname); - } - } else { - // When there is no prior location and pathname is empty, set it to / - if (!location.pathname) { - location.pathname = '/'; - } - } - - return location; - } - function locationsAreEqual(a, b) { - return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state); - } - - function warning(condition, message) { - { - if (condition) { - return; - } - - var text = "Warning: " + message; - - if (typeof console !== 'undefined') { - console.warn(text); - } - - try { - throw Error(text); - } catch (x) {} - } - } - - function createTransitionManager() { - var prompt = null; - - function setPrompt(nextPrompt) { - warning(prompt == null, 'A history supports only one prompt at a time'); - prompt = nextPrompt; - return function () { - if (prompt === nextPrompt) prompt = null; - }; - } - - function confirmTransitionTo(location, action, getUserConfirmation, callback) { - // TODO: If another transition starts while we're still confirming - // the previous one, we may end up in a weird state. Figure out the - // best way to handle this. - if (prompt != null) { - var result = typeof prompt === 'function' ? prompt(location, action) : prompt; - - if (typeof result === 'string') { - if (typeof getUserConfirmation === 'function') { - getUserConfirmation(result, callback); - } else { - warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message'); - callback(true); - } - } else { - // Return false from a transition hook to cancel the transition. - callback(result !== false); - } - } else { - callback(true); - } - } - - var listeners = []; - - function appendListener(fn) { - var isActive = true; - - function listener() { - if (isActive) fn.apply(void 0, arguments); - } - - listeners.push(listener); - return function () { - isActive = false; - listeners = listeners.filter(function (item) { - return item !== listener; - }); - }; - } - - function notifyListeners() { - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - listeners.forEach(function (listener) { - return listener.apply(void 0, args); - }); - } - - return { - setPrompt: setPrompt, - confirmTransitionTo: confirmTransitionTo, - appendListener: appendListener, - notifyListeners: notifyListeners - }; - } - - var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement); - function getConfirmation(message, callback) { - callback(window.confirm(message)); // eslint-disable-line no-alert - } - /** - * Returns true if the HTML5 history API is supported. Taken from Modernizr. - * - * https://github.com/Modernizr/Modernizr/blob/master/LICENSE - * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js - * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586 - */ - - function supportsHistory() { - var ua = window.navigator.userAgent; - if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false; - return window.history && 'pushState' in window.history; - } - /** - * Returns true if browser fires popstate on hash change. - * IE10 and IE11 do not. - */ - - function supportsPopStateOnHashChange() { - return window.navigator.userAgent.indexOf('Trident') === -1; - } - /** - * Returns false if using go(n) with hash history causes a full page reload. - */ - - function supportsGoWithoutReloadUsingHash() { - return window.navigator.userAgent.indexOf('Firefox') === -1; - } - /** - * Returns true if a given popstate event is an extraneous WebKit event. - * Accounts for the fact that Chrome on iOS fires real popstate events - * containing undefined state when pressing the back button. - */ - - function isExtraneousPopstateEvent(event) { - return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1; - } - - var prefix = 'Invariant failed'; - function invariant(condition, message) { - if (condition) { - return; - } - - { - throw new Error(prefix + ": " + (message || '')); - } - } - - var PopStateEvent = 'popstate'; - var HashChangeEvent = 'hashchange'; - - function getHistoryState() { - try { - return window.history.state || {}; - } catch (e) { - // IE 11 sometimes throws when accessing window.history.state - // See https://github.com/ReactTraining/history/pull/289 - return {}; - } - } - /** - * Creates a history object that uses the HTML5 history API including - * pushState, replaceState, and the popstate event. - */ - - - function createBrowserHistory(props) { - if (props === void 0) { - props = {}; - } - - !canUseDOM ? invariant(false, 'Browser history needs a DOM') : void 0; - var globalHistory = window.history; - var canUseHistory = supportsHistory(); - var needsHashChangeListener = !supportsPopStateOnHashChange(); - var _props = props, - _props$forceRefresh = _props.forceRefresh, - forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh, - _props$getUserConfirm = _props.getUserConfirmation, - getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm, - _props$keyLength = _props.keyLength, - keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength; - var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : ''; - - function getDOMLocation(historyState) { - var _ref = historyState || {}, - key = _ref.key, - state = _ref.state; - - var _window$location = window.location, - pathname = _window$location.pathname, - search = _window$location.search, - hash = _window$location.hash; - var path = pathname + search + hash; - warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path "' + path + '" to begin with "' + basename + '".'); - if (basename) path = stripBasename(path, basename); - return createLocation(path, state, key); - } - - function createKey() { - return Math.random().toString(36).substr(2, keyLength); - } - - var transitionManager = createTransitionManager(); - - function setState(nextState) { - _extends(history, nextState); - - history.length = globalHistory.length; - transitionManager.notifyListeners(history.location, history.action); - } - - function handlePopState(event) { - // Ignore extraneous popstate events in WebKit. - if (isExtraneousPopstateEvent(event)) return; - handlePop(getDOMLocation(event.state)); - } - - function handleHashChange() { - handlePop(getDOMLocation(getHistoryState())); - } - - var forceNextPop = false; - - function handlePop(location) { - if (forceNextPop) { - forceNextPop = false; - setState(); - } else { - var action = 'POP'; - transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { - if (ok) { - setState({ - action: action, - location: location - }); - } else { - revertPop(location); - } - }); - } - } - - function revertPop(fromLocation) { - var toLocation = history.location; // TODO: We could probably make this more reliable by - // keeping a list of keys we've seen in sessionStorage. - // Instead, we just default to 0 for keys we don't know. - - var toIndex = allKeys.indexOf(toLocation.key); - if (toIndex === -1) toIndex = 0; - var fromIndex = allKeys.indexOf(fromLocation.key); - if (fromIndex === -1) fromIndex = 0; - var delta = toIndex - fromIndex; - - if (delta) { - forceNextPop = true; - go(delta); - } - } - - var initialLocation = getDOMLocation(getHistoryState()); - var allKeys = [initialLocation.key]; // Public interface - - function createHref(location) { - return basename + createPath(location); - } - - function push(path, state) { - warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored'); - var action = 'PUSH'; - var location = createLocation(path, state, createKey(), history.location); - transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { - if (!ok) return; - var href = createHref(location); - var key = location.key, - state = location.state; - - if (canUseHistory) { - globalHistory.pushState({ - key: key, - state: state - }, null, href); - - if (forceRefresh) { - window.location.href = href; - } else { - var prevIndex = allKeys.indexOf(history.location.key); - var nextKeys = allKeys.slice(0, prevIndex + 1); - nextKeys.push(location.key); - allKeys = nextKeys; - setState({ - action: action, - location: location - }); - } - } else { - warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history'); - window.location.href = href; - } - }); - } - - function replace(path, state) { - warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored'); - var action = 'REPLACE'; - var location = createLocation(path, state, createKey(), history.location); - transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { - if (!ok) return; - var href = createHref(location); - var key = location.key, - state = location.state; - - if (canUseHistory) { - globalHistory.replaceState({ - key: key, - state: state - }, null, href); - - if (forceRefresh) { - window.location.replace(href); - } else { - var prevIndex = allKeys.indexOf(history.location.key); - if (prevIndex !== -1) allKeys[prevIndex] = location.key; - setState({ - action: action, - location: location - }); - } - } else { - warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history'); - window.location.replace(href); - } - }); - } - - function go(n) { - globalHistory.go(n); - } - - function goBack() { - go(-1); - } - - function goForward() { - go(1); - } - - var listenerCount = 0; - - function checkDOMListeners(delta) { - listenerCount += delta; - - if (listenerCount === 1 && delta === 1) { - window.addEventListener(PopStateEvent, handlePopState); - if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange); - } else if (listenerCount === 0) { - window.removeEventListener(PopStateEvent, handlePopState); - if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange); - } - } - - var isBlocked = false; - - function block(prompt) { - if (prompt === void 0) { - prompt = false; - } - - var unblock = transitionManager.setPrompt(prompt); - - if (!isBlocked) { - checkDOMListeners(1); - isBlocked = true; - } - - return function () { - if (isBlocked) { - isBlocked = false; - checkDOMListeners(-1); - } - - return unblock(); - }; - } - - function listen(listener) { - var unlisten = transitionManager.appendListener(listener); - checkDOMListeners(1); - return function () { - checkDOMListeners(-1); - unlisten(); - }; - } - - var history = { - length: globalHistory.length, - action: 'POP', - location: initialLocation, - createHref: createHref, - push: push, - replace: replace, - go: go, - goBack: goBack, - goForward: goForward, - block: block, - listen: listen - }; - return history; - } - - var HashChangeEvent$1 = 'hashchange'; - var HashPathCoders = { - hashbang: { - encodePath: function encodePath(path) { - return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path); - }, - decodePath: function decodePath(path) { - return path.charAt(0) === '!' ? path.substr(1) : path; - } - }, - noslash: { - encodePath: stripLeadingSlash, - decodePath: addLeadingSlash - }, - slash: { - encodePath: addLeadingSlash, - decodePath: addLeadingSlash - } - }; - - function stripHash(url) { - var hashIndex = url.indexOf('#'); - return hashIndex === -1 ? url : url.slice(0, hashIndex); - } - - function getHashPath() { - // We can't use window.location.hash here because it's not - // consistent across browsers - Firefox will pre-decode it! - var href = window.location.href; - var hashIndex = href.indexOf('#'); - return hashIndex === -1 ? '' : href.substring(hashIndex + 1); - } - - function pushHashPath(path) { - window.location.hash = path; - } - - function replaceHashPath(path) { - window.location.replace(stripHash(window.location.href) + '#' + path); - } - - function createHashHistory(props) { - if (props === void 0) { - props = {}; - } - - !canUseDOM ? invariant(false, 'Hash history needs a DOM') : void 0; - var globalHistory = window.history; - var canGoWithoutReload = supportsGoWithoutReloadUsingHash(); - var _props = props, - _props$getUserConfirm = _props.getUserConfirmation, - getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm, - _props$hashType = _props.hashType, - hashType = _props$hashType === void 0 ? 'slash' : _props$hashType; - var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : ''; - var _HashPathCoders$hashT = HashPathCoders[hashType], - encodePath = _HashPathCoders$hashT.encodePath, - decodePath = _HashPathCoders$hashT.decodePath; - - function getDOMLocation() { - var path = decodePath(getHashPath()); - warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path "' + path + '" to begin with "' + basename + '".'); - if (basename) path = stripBasename(path, basename); - return createLocation(path); - } - - var transitionManager = createTransitionManager(); - - function setState(nextState) { - _extends(history, nextState); - - history.length = globalHistory.length; - transitionManager.notifyListeners(history.location, history.action); - } - - var forceNextPop = false; - var ignorePath = null; - - function locationsAreEqual$$1(a, b) { - return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash; - } - - function handleHashChange() { - var path = getHashPath(); - var encodedPath = encodePath(path); - - if (path !== encodedPath) { - // Ensure we always have a properly-encoded hash. - replaceHashPath(encodedPath); - } else { - var location = getDOMLocation(); - var prevLocation = history.location; - if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change. - - if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace. - - ignorePath = null; - handlePop(location); - } - } - - function handlePop(location) { - if (forceNextPop) { - forceNextPop = false; - setState(); - } else { - var action = 'POP'; - transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { - if (ok) { - setState({ - action: action, - location: location - }); - } else { - revertPop(location); - } - }); - } - } - - function revertPop(fromLocation) { - var toLocation = history.location; // TODO: We could probably make this more reliable by - // keeping a list of paths we've seen in sessionStorage. - // Instead, we just default to 0 for paths we don't know. - - var toIndex = allPaths.lastIndexOf(createPath(toLocation)); - if (toIndex === -1) toIndex = 0; - var fromIndex = allPaths.lastIndexOf(createPath(fromLocation)); - if (fromIndex === -1) fromIndex = 0; - var delta = toIndex - fromIndex; - - if (delta) { - forceNextPop = true; - go(delta); - } - } // Ensure the hash is encoded properly before doing anything else. - - - var path = getHashPath(); - var encodedPath = encodePath(path); - if (path !== encodedPath) replaceHashPath(encodedPath); - var initialLocation = getDOMLocation(); - var allPaths = [createPath(initialLocation)]; // Public interface - - function createHref(location) { - var baseTag = document.querySelector('base'); - var href = ''; - - if (baseTag && baseTag.getAttribute('href')) { - href = stripHash(window.location.href); - } - - return href + '#' + encodePath(basename + createPath(location)); - } - - function push(path, state) { - warning(state === undefined, 'Hash history cannot push state; it is ignored'); - var action = 'PUSH'; - var location = createLocation(path, undefined, undefined, history.location); - transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { - if (!ok) return; - var path = createPath(location); - var encodedPath = encodePath(basename + path); - var hashChanged = getHashPath() !== encodedPath; - - if (hashChanged) { - // We cannot tell if a hashchange was caused by a PUSH, so we'd - // rather setState here and ignore the hashchange. The caveat here - // is that other hash histories in the page will consider it a POP. - ignorePath = path; - pushHashPath(encodedPath); - var prevIndex = allPaths.lastIndexOf(createPath(history.location)); - var nextPaths = allPaths.slice(0, prevIndex + 1); - nextPaths.push(path); - allPaths = nextPaths; - setState({ - action: action, - location: location - }); - } else { - warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack'); - setState(); - } - }); - } - - function replace(path, state) { - warning(state === undefined, 'Hash history cannot replace state; it is ignored'); - var action = 'REPLACE'; - var location = createLocation(path, undefined, undefined, history.location); - transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { - if (!ok) return; - var path = createPath(location); - var encodedPath = encodePath(basename + path); - var hashChanged = getHashPath() !== encodedPath; - - if (hashChanged) { - // We cannot tell if a hashchange was caused by a REPLACE, so we'd - // rather setState here and ignore the hashchange. The caveat here - // is that other hash histories in the page will consider it a POP. - ignorePath = path; - replaceHashPath(encodedPath); - } - - var prevIndex = allPaths.indexOf(createPath(history.location)); - if (prevIndex !== -1) allPaths[prevIndex] = path; - setState({ - action: action, - location: location - }); - }); - } - - function go(n) { - warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser'); - globalHistory.go(n); - } - - function goBack() { - go(-1); - } - - function goForward() { - go(1); - } - - var listenerCount = 0; - - function checkDOMListeners(delta) { - listenerCount += delta; - - if (listenerCount === 1 && delta === 1) { - window.addEventListener(HashChangeEvent$1, handleHashChange); - } else if (listenerCount === 0) { - window.removeEventListener(HashChangeEvent$1, handleHashChange); - } - } - - var isBlocked = false; - - function block(prompt) { - if (prompt === void 0) { - prompt = false; - } - - var unblock = transitionManager.setPrompt(prompt); - - if (!isBlocked) { - checkDOMListeners(1); - isBlocked = true; - } - - return function () { - if (isBlocked) { - isBlocked = false; - checkDOMListeners(-1); - } - - return unblock(); - }; - } - - function listen(listener) { - var unlisten = transitionManager.appendListener(listener); - checkDOMListeners(1); - return function () { - checkDOMListeners(-1); - unlisten(); - }; - } - - var history = { - length: globalHistory.length, - action: 'POP', - location: initialLocation, - createHref: createHref, - push: push, - replace: replace, - go: go, - goBack: goBack, - goForward: goForward, - block: block, - listen: listen - }; - return history; - } - - function clamp(n, lowerBound, upperBound) { - return Math.min(Math.max(n, lowerBound), upperBound); - } - /** - * Creates a history object that stores locations in memory. - */ - - - function createMemoryHistory(props) { - if (props === void 0) { - props = {}; - } - - var _props = props, - getUserConfirmation = _props.getUserConfirmation, - _props$initialEntries = _props.initialEntries, - initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries, - _props$initialIndex = _props.initialIndex, - initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex, - _props$keyLength = _props.keyLength, - keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength; - var transitionManager = createTransitionManager(); - - function setState(nextState) { - _extends(history, nextState); - - history.length = history.entries.length; - transitionManager.notifyListeners(history.location, history.action); - } - - function createKey() { - return Math.random().toString(36).substr(2, keyLength); - } - - var index = clamp(initialIndex, 0, initialEntries.length - 1); - var entries = initialEntries.map(function (entry) { - return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey()); - }); // Public interface - - var createHref = createPath; - - function push(path, state) { - warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored'); - var action = 'PUSH'; - var location = createLocation(path, state, createKey(), history.location); - transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { - if (!ok) return; - var prevIndex = history.index; - var nextIndex = prevIndex + 1; - var nextEntries = history.entries.slice(0); - - if (nextEntries.length > nextIndex) { - nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location); - } else { - nextEntries.push(location); - } - - setState({ - action: action, - location: location, - index: nextIndex, - entries: nextEntries - }); - }); - } - - function replace(path, state) { - warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored'); - var action = 'REPLACE'; - var location = createLocation(path, state, createKey(), history.location); - transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { - if (!ok) return; - history.entries[history.index] = location; - setState({ - action: action, - location: location - }); - }); - } - - function go(n) { - var nextIndex = clamp(history.index + n, 0, history.entries.length - 1); - var action = 'POP'; - var location = history.entries[nextIndex]; - transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) { - if (ok) { - setState({ - action: action, - location: location, - index: nextIndex - }); - } else { - // Mimic the behavior of DOM histories by - // causing a render after a cancelled POP. - setState(); - } - }); - } - - function goBack() { - go(-1); - } - - function goForward() { - go(1); - } - - function canGo(n) { - var nextIndex = history.index + n; - return nextIndex >= 0 && nextIndex < history.entries.length; - } - - function block(prompt) { - if (prompt === void 0) { - prompt = false; - } - - return transitionManager.setPrompt(prompt); - } - - function listen(listener) { - return transitionManager.appendListener(listener); - } - - var history = { - length: entries.length, - action: 'POP', - location: entries[index], - index: index, - entries: entries, - createHref: createHref, - push: push, - replace: replace, - go: go, - goBack: goBack, - goForward: goForward, - canGo: canGo, - block: block, - listen: listen - }; - return history; - } - - exports.createBrowserHistory = createBrowserHistory; - exports.createHashHistory = createHashHistory; - exports.createMemoryHistory = createMemoryHistory; - exports.createLocation = createLocation; - exports.locationsAreEqual = locationsAreEqual; - exports.parsePath = parsePath; - exports.createPath = createPath; - - Object.defineProperty(exports, '__esModule', { value: true }); - -}))); diff --git a/node_modules/history/umd/history.min.js b/node_modules/history/umd/history.min.js deleted file mode 100644 index 84b64e2..0000000 --- a/node_modules/history/umd/history.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(n.History={})}(this,function(n){"use strict";function E(){return(E=Object.assign||function(n){for(var t=1;tt?e.splice(t,e.length-t,o):e.push(o),s({action:"PUSH",location:o,index:t,entries:e})}})},replace:function(n,t){var e="REPLACE",o=C(n,t,h(),w.location);f.confirmTransitionTo(o,e,r,function(n){n&&(w.entries[w.index]=o,s({action:e,location:o}))})},go:p,goBack:function(){p(-1)},goForward:function(){p(1)},canGo:function(n){var t=w.index+n;return 0<=t&&t 0 - ? format.replace(/%s/g, function() { - return subs[index++]; - }) - : format); - - if (typeof console !== 'undefined') { - console.error(message); - } - - try { - // --- Welcome to debugging history --- - // This error was thrown as a convenience so that you can use the - // stack trace to find the callsite that triggered this warning. - throw new Error(message); - } catch (e) {} - }; -} - -module.exports = function(member) { - printWarning( - 'Please use `require("history").%s` instead of `require("history/%s")`. ' + - 'Support for the latter will be removed in the next major release.', - [member, member] - ); -}; diff --git a/node_modules/hoist-non-react-statics/CHANGELOG.md b/node_modules/hoist-non-react-statics/CHANGELOG.md deleted file mode 100644 index 59994b4..0000000 --- a/node_modules/hoist-non-react-statics/CHANGELOG.md +++ /dev/null @@ -1,37 +0,0 @@ -# 3.3.2 (January 22, 2020) -- Fix `React.memo` for v16.12+ (#93) - -# 3.3.1 (November 14, 2019) -- Fix for UMD bundle (#85) -- Tooling changes (#83, #84, #87) - -# 3.3.0 (January 23, 2019) -- Prevent hoisting of React.memo statics (#73) - -# 3.2.1 (December 3, 2018) -- Fixed `defaultProps`, `displayName` and `propTypes` being hoisted from `React.forwardRef` to `React.forwardRef`. ([#71]) - -# 3.2.0 (November 26, 2018) -- Added support for `getDerivedStateFromError`. ([#68]) -- Added support for React versions less than 0.14. ([#69]) - -# 3.1.0 (October 30, 2018) -- Added support for `contextType`. ([#62]) -- Reduced bundle size. ([e89c7a6]) -- Removed TypeScript definitions. ([#61]) - -# 3.0.1 (July 28, 2018) -- Fixed prop-types warnings. ([e0846fe]) - -# 3.0.0 (July 27, 2018) -- Dropped support for React versions less than 0.14. ([#55]) -- Added support for `React.forwardRef` components. ([#55]) - -[#55]: https://github.com/mridgway/hoist-non-react-statics/pull/55 -[#61]: https://github.com/mridgway/hoist-non-react-statics/pull/61 -[#62]: https://github.com/mridgway/hoist-non-react-statics/pull/62 -[#68]: https://github.com/mridgway/hoist-non-react-statics/pull/68 -[#69]: https://github.com/mridgway/hoist-non-react-statics/pull/69 -[#71]: https://github.com/mridgway/hoist-non-react-statics/pull/71 -[e0846fe]: https://github.com/mridgway/hoist-non-react-statics/commit/e0846feefbad8b34d300de9966ffd607aacb81a3 -[e89c7a6]: https://github.com/mridgway/hoist-non-react-statics/commit/e89c7a6168edc19eeadb2d149e600b888e8b0446 diff --git a/node_modules/hoist-non-react-statics/LICENSE.md b/node_modules/hoist-non-react-statics/LICENSE.md deleted file mode 100644 index 2464f59..0000000 --- a/node_modules/hoist-non-react-statics/LICENSE.md +++ /dev/null @@ -1,29 +0,0 @@ -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. diff --git a/node_modules/hoist-non-react-statics/README.md b/node_modules/hoist-non-react-statics/README.md deleted file mode 100644 index 24ea688..0000000 --- a/node_modules/hoist-non-react-statics/README.md +++ /dev/null @@ -1,55 +0,0 @@ -# hoist-non-react-statics - -[![NPM version](https://badge.fury.io/js/hoist-non-react-statics.svg)](http://badge.fury.io/js/hoist-non-react-statics) -[![Build Status](https://img.shields.io/travis/mridgway/hoist-non-react-statics.svg)](https://travis-ci.org/mridgway/hoist-non-react-statics) -[![Coverage Status](https://img.shields.io/coveralls/mridgway/hoist-non-react-statics.svg)](https://coveralls.io/r/mridgway/hoist-non-react-statics?branch=master) -[![Dependency Status](https://img.shields.io/david/mridgway/hoist-non-react-statics.svg)](https://david-dm.org/mridgway/hoist-non-react-statics) -[![devDependency Status](https://img.shields.io/david/dev/mridgway/hoist-non-react-statics.svg)](https://david-dm.org/mridgway/hoist-non-react-statics#info=devDependencies) - -Copies non-react specific statics from a child component to a parent component. -Similar to `Object.assign`, but with React static keywords blacklisted from -being overridden. - -```bash -$ npm install --save hoist-non-react-statics -``` - -## Usage - -```js -import hoistNonReactStatics from 'hoist-non-react-statics'; - -hoistNonReactStatics(targetComponent, sourceComponent); -``` - -If you have specific statics that you don't want to be hoisted, you can also pass a third parameter to exclude them: - -```js -hoistNonReactStatics(targetComponent, sourceComponent, { myStatic: true, myOtherStatic: true }); -``` - -## What does this module do? - -See this [explanation](https://facebook.github.io/react/docs/higher-order-components.html#static-methods-must-be-copied-over) from the React docs. - -## Compatible React Versions - -Please use latest 3.x. Versions prior to 3.x will not support ForwardRefs. - -| hoist-non-react-statics Version | Compatible React Version | -|--------------------------|-------------------------------| -| 3.x | 0.13-16.x With ForwardRef Support | -| 2.x | 0.13-16.x Without ForwardRef Support | -| 1.x | 0.13-16.2 | - -## Browser Support - -This package uses `Object.defineProperty` which has a broken implementation in IE8. In order to use this package in IE8, you will need a polyfill that fixes this method. - -## License -This software is free to use under the Yahoo Inc. BSD license. -See the [LICENSE file][] for license text and copyright information. - -[LICENSE file]: https://github.com/mridgway/hoist-non-react-statics/blob/master/LICENSE.md - -Third-party open source code used are listed in our [package.json file]( https://github.com/mridgway/hoist-non-react-statics/blob/master/package.json). diff --git a/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js b/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js deleted file mode 100644 index 60f9c4b..0000000 --- a/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js +++ /dev/null @@ -1,103 +0,0 @@ -'use strict'; - -var reactIs = require('react-is'); - -/** - * Copyright 2015, Yahoo! Inc. - * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. - */ -var REACT_STATICS = { - childContextTypes: true, - contextType: true, - contextTypes: true, - defaultProps: true, - displayName: true, - getDefaultProps: true, - getDerivedStateFromError: true, - getDerivedStateFromProps: true, - mixins: true, - propTypes: true, - type: true -}; -var KNOWN_STATICS = { - name: true, - length: true, - prototype: true, - caller: true, - callee: true, - arguments: true, - arity: true -}; -var FORWARD_REF_STATICS = { - '$$typeof': true, - render: true, - defaultProps: true, - displayName: true, - propTypes: true -}; -var MEMO_STATICS = { - '$$typeof': true, - compare: true, - defaultProps: true, - displayName: true, - propTypes: true, - type: true -}; -var TYPE_STATICS = {}; -TYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS; -TYPE_STATICS[reactIs.Memo] = MEMO_STATICS; - -function getStatics(component) { - // React v16.11 and below - if (reactIs.isMemo(component)) { - return MEMO_STATICS; - } // React v16.12 and above - - - return TYPE_STATICS[component['$$typeof']] || REACT_STATICS; -} - -var defineProperty = Object.defineProperty; -var getOwnPropertyNames = Object.getOwnPropertyNames; -var getOwnPropertySymbols = Object.getOwnPropertySymbols; -var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; -var getPrototypeOf = Object.getPrototypeOf; -var objectPrototype = Object.prototype; -function hoistNonReactStatics(targetComponent, sourceComponent, blacklist) { - if (typeof sourceComponent !== 'string') { - // don't hoist over string (html) components - if (objectPrototype) { - var inheritedComponent = getPrototypeOf(sourceComponent); - - if (inheritedComponent && inheritedComponent !== objectPrototype) { - hoistNonReactStatics(targetComponent, inheritedComponent, blacklist); - } - } - - var keys = getOwnPropertyNames(sourceComponent); - - if (getOwnPropertySymbols) { - keys = keys.concat(getOwnPropertySymbols(sourceComponent)); - } - - var targetStatics = getStatics(targetComponent); - var sourceStatics = getStatics(sourceComponent); - - for (var i = 0; i < keys.length; ++i) { - var key = keys[i]; - - if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) { - var descriptor = getOwnPropertyDescriptor(sourceComponent, key); - - try { - // Avoid failures from read-only properties - defineProperty(targetComponent, key, descriptor); - } catch (e) {} - } - } - } - - return targetComponent; -} - -module.exports = hoistNonReactStatics; diff --git a/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.js b/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.js deleted file mode 100644 index c6d59c7..0000000 --- a/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.js +++ /dev/null @@ -1,449 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, global.hoistNonReactStatics = factory()); -}(this, (function () { 'use strict'; - - function unwrapExports (x) { - return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x; - } - - function createCommonjsModule(fn, module) { - return module = { exports: {} }, fn(module, module.exports), module.exports; - } - - var reactIs_production_min = createCommonjsModule(function (module, exports) { - Object.defineProperty(exports,"__esModule",{value:!0}); - var b="function"===typeof Symbol&&Symbol.for,c=b?Symbol.for("react.element"):60103,d=b?Symbol.for("react.portal"):60106,e=b?Symbol.for("react.fragment"):60107,f=b?Symbol.for("react.strict_mode"):60108,g=b?Symbol.for("react.profiler"):60114,h=b?Symbol.for("react.provider"):60109,k=b?Symbol.for("react.context"):60110,l=b?Symbol.for("react.async_mode"):60111,m=b?Symbol.for("react.concurrent_mode"):60111,n=b?Symbol.for("react.forward_ref"):60112,p=b?Symbol.for("react.suspense"):60113,q=b?Symbol.for("react.suspense_list"): - 60120,r=b?Symbol.for("react.memo"):60115,t=b?Symbol.for("react.lazy"):60116,v=b?Symbol.for("react.fundamental"):60117,w=b?Symbol.for("react.responder"):60118,x=b?Symbol.for("react.scope"):60119;function y(a){if("object"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function z(a){return y(a)===m} - exports.typeOf=y;exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p; - exports.isValidElementType=function(a){return "string"===typeof a||"function"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||"object"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===v||a.$$typeof===w||a.$$typeof===x)};exports.isAsyncMode=function(a){return z(a)||y(a)===l};exports.isConcurrentMode=z;exports.isContextConsumer=function(a){return y(a)===k};exports.isContextProvider=function(a){return y(a)===h}; - exports.isElement=function(a){return "object"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return y(a)===n};exports.isFragment=function(a){return y(a)===e};exports.isLazy=function(a){return y(a)===t};exports.isMemo=function(a){return y(a)===r};exports.isPortal=function(a){return y(a)===d};exports.isProfiler=function(a){return y(a)===g};exports.isStrictMode=function(a){return y(a)===f};exports.isSuspense=function(a){return y(a)===p}; - }); - - unwrapExports(reactIs_production_min); - var reactIs_production_min_1 = reactIs_production_min.typeOf; - var reactIs_production_min_2 = reactIs_production_min.AsyncMode; - var reactIs_production_min_3 = reactIs_production_min.ConcurrentMode; - var reactIs_production_min_4 = reactIs_production_min.ContextConsumer; - var reactIs_production_min_5 = reactIs_production_min.ContextProvider; - var reactIs_production_min_6 = reactIs_production_min.Element; - var reactIs_production_min_7 = reactIs_production_min.ForwardRef; - var reactIs_production_min_8 = reactIs_production_min.Fragment; - var reactIs_production_min_9 = reactIs_production_min.Lazy; - var reactIs_production_min_10 = reactIs_production_min.Memo; - var reactIs_production_min_11 = reactIs_production_min.Portal; - var reactIs_production_min_12 = reactIs_production_min.Profiler; - var reactIs_production_min_13 = reactIs_production_min.StrictMode; - var reactIs_production_min_14 = reactIs_production_min.Suspense; - var reactIs_production_min_15 = reactIs_production_min.isValidElementType; - var reactIs_production_min_16 = reactIs_production_min.isAsyncMode; - var reactIs_production_min_17 = reactIs_production_min.isConcurrentMode; - var reactIs_production_min_18 = reactIs_production_min.isContextConsumer; - var reactIs_production_min_19 = reactIs_production_min.isContextProvider; - var reactIs_production_min_20 = reactIs_production_min.isElement; - var reactIs_production_min_21 = reactIs_production_min.isForwardRef; - var reactIs_production_min_22 = reactIs_production_min.isFragment; - var reactIs_production_min_23 = reactIs_production_min.isLazy; - var reactIs_production_min_24 = reactIs_production_min.isMemo; - var reactIs_production_min_25 = reactIs_production_min.isPortal; - var reactIs_production_min_26 = reactIs_production_min.isProfiler; - var reactIs_production_min_27 = reactIs_production_min.isStrictMode; - var reactIs_production_min_28 = reactIs_production_min.isSuspense; - - var reactIs_development = createCommonjsModule(function (module, exports) { - - - - if (process.env.NODE_ENV !== "production") { - (function() { - - Object.defineProperty(exports, '__esModule', { value: true }); - - // The Symbol used to tag the ReactElement-like types. If there is no native Symbol - // nor polyfill, then a plain number is used for performance. - var hasSymbol = typeof Symbol === 'function' && Symbol.for; - var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7; - var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca; - var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb; - var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc; - var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2; - var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd; - var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary - // (unstable) APIs that have been removed. Can we remove the symbols? - - var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf; - var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf; - var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0; - var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1; - var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8; - var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3; - var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4; - var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5; - var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6; - var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7; - - function isValidElementType(type) { - return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill. - type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE); - } - - /** - * Forked from fbjs/warning: - * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js - * - * Only change is we use console.warn instead of console.error, - * and do nothing when 'console' is not supported. - * This really simplifies the code. - * --- - * Similar to invariant but only logs a warning if the condition is not met. - * This can be used to log issues in development environments in critical - * paths. Removing the logging code for production environments will keep the - * same logic and follow the same code paths. - */ - var lowPriorityWarningWithoutStack = function () {}; - - { - var printWarning = function (format) { - for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - - var argIndex = 0; - var message = 'Warning: ' + format.replace(/%s/g, function () { - return args[argIndex++]; - }); - - if (typeof console !== 'undefined') { - console.warn(message); - } - - try { - // --- Welcome to debugging React --- - // This error was thrown as a convenience so that you can use this stack - // to find the callsite that caused this warning to fire. - throw new Error(message); - } catch (x) {} - }; - - lowPriorityWarningWithoutStack = function (condition, format) { - if (format === undefined) { - throw new Error('`lowPriorityWarningWithoutStack(condition, format, ...args)` requires a warning ' + 'message argument'); - } - - if (!condition) { - for (var _len2 = arguments.length, args = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) { - args[_key2 - 2] = arguments[_key2]; - } - - printWarning.apply(void 0, [format].concat(args)); - } - }; - } - - var lowPriorityWarningWithoutStack$1 = lowPriorityWarningWithoutStack; - - function typeOf(object) { - if (typeof object === 'object' && object !== null) { - var $$typeof = object.$$typeof; - - switch ($$typeof) { - case REACT_ELEMENT_TYPE: - var type = object.type; - - switch (type) { - case REACT_ASYNC_MODE_TYPE: - case REACT_CONCURRENT_MODE_TYPE: - case REACT_FRAGMENT_TYPE: - case REACT_PROFILER_TYPE: - case REACT_STRICT_MODE_TYPE: - case REACT_SUSPENSE_TYPE: - return type; - - default: - var $$typeofType = type && type.$$typeof; - - switch ($$typeofType) { - case REACT_CONTEXT_TYPE: - case REACT_FORWARD_REF_TYPE: - case REACT_LAZY_TYPE: - case REACT_MEMO_TYPE: - case REACT_PROVIDER_TYPE: - return $$typeofType; - - default: - return $$typeof; - } - - } - - case REACT_PORTAL_TYPE: - return $$typeof; - } - } - - return undefined; - } // AsyncMode is deprecated along with isAsyncMode - - var AsyncMode = REACT_ASYNC_MODE_TYPE; - var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE; - var ContextConsumer = REACT_CONTEXT_TYPE; - var ContextProvider = REACT_PROVIDER_TYPE; - var Element = REACT_ELEMENT_TYPE; - var ForwardRef = REACT_FORWARD_REF_TYPE; - var Fragment = REACT_FRAGMENT_TYPE; - var Lazy = REACT_LAZY_TYPE; - var Memo = REACT_MEMO_TYPE; - var Portal = REACT_PORTAL_TYPE; - var Profiler = REACT_PROFILER_TYPE; - var StrictMode = REACT_STRICT_MODE_TYPE; - var Suspense = REACT_SUSPENSE_TYPE; - var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated - - function isAsyncMode(object) { - { - if (!hasWarnedAboutDeprecatedIsAsyncMode) { - hasWarnedAboutDeprecatedIsAsyncMode = true; - lowPriorityWarningWithoutStack$1(false, 'The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.'); - } - } - - return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE; - } - function isConcurrentMode(object) { - return typeOf(object) === REACT_CONCURRENT_MODE_TYPE; - } - function isContextConsumer(object) { - return typeOf(object) === REACT_CONTEXT_TYPE; - } - function isContextProvider(object) { - return typeOf(object) === REACT_PROVIDER_TYPE; - } - function isElement(object) { - return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE; - } - function isForwardRef(object) { - return typeOf(object) === REACT_FORWARD_REF_TYPE; - } - function isFragment(object) { - return typeOf(object) === REACT_FRAGMENT_TYPE; - } - function isLazy(object) { - return typeOf(object) === REACT_LAZY_TYPE; - } - function isMemo(object) { - return typeOf(object) === REACT_MEMO_TYPE; - } - function isPortal(object) { - return typeOf(object) === REACT_PORTAL_TYPE; - } - function isProfiler(object) { - return typeOf(object) === REACT_PROFILER_TYPE; - } - function isStrictMode(object) { - return typeOf(object) === REACT_STRICT_MODE_TYPE; - } - function isSuspense(object) { - return typeOf(object) === REACT_SUSPENSE_TYPE; - } - - exports.typeOf = typeOf; - exports.AsyncMode = AsyncMode; - exports.ConcurrentMode = ConcurrentMode; - exports.ContextConsumer = ContextConsumer; - exports.ContextProvider = ContextProvider; - exports.Element = Element; - exports.ForwardRef = ForwardRef; - exports.Fragment = Fragment; - exports.Lazy = Lazy; - exports.Memo = Memo; - exports.Portal = Portal; - exports.Profiler = Profiler; - exports.StrictMode = StrictMode; - exports.Suspense = Suspense; - exports.isValidElementType = isValidElementType; - exports.isAsyncMode = isAsyncMode; - exports.isConcurrentMode = isConcurrentMode; - exports.isContextConsumer = isContextConsumer; - exports.isContextProvider = isContextProvider; - exports.isElement = isElement; - exports.isForwardRef = isForwardRef; - exports.isFragment = isFragment; - exports.isLazy = isLazy; - exports.isMemo = isMemo; - exports.isPortal = isPortal; - exports.isProfiler = isProfiler; - exports.isStrictMode = isStrictMode; - exports.isSuspense = isSuspense; - })(); - } - }); - - unwrapExports(reactIs_development); - var reactIs_development_1 = reactIs_development.typeOf; - var reactIs_development_2 = reactIs_development.AsyncMode; - var reactIs_development_3 = reactIs_development.ConcurrentMode; - var reactIs_development_4 = reactIs_development.ContextConsumer; - var reactIs_development_5 = reactIs_development.ContextProvider; - var reactIs_development_6 = reactIs_development.Element; - var reactIs_development_7 = reactIs_development.ForwardRef; - var reactIs_development_8 = reactIs_development.Fragment; - var reactIs_development_9 = reactIs_development.Lazy; - var reactIs_development_10 = reactIs_development.Memo; - var reactIs_development_11 = reactIs_development.Portal; - var reactIs_development_12 = reactIs_development.Profiler; - var reactIs_development_13 = reactIs_development.StrictMode; - var reactIs_development_14 = reactIs_development.Suspense; - var reactIs_development_15 = reactIs_development.isValidElementType; - var reactIs_development_16 = reactIs_development.isAsyncMode; - var reactIs_development_17 = reactIs_development.isConcurrentMode; - var reactIs_development_18 = reactIs_development.isContextConsumer; - var reactIs_development_19 = reactIs_development.isContextProvider; - var reactIs_development_20 = reactIs_development.isElement; - var reactIs_development_21 = reactIs_development.isForwardRef; - var reactIs_development_22 = reactIs_development.isFragment; - var reactIs_development_23 = reactIs_development.isLazy; - var reactIs_development_24 = reactIs_development.isMemo; - var reactIs_development_25 = reactIs_development.isPortal; - var reactIs_development_26 = reactIs_development.isProfiler; - var reactIs_development_27 = reactIs_development.isStrictMode; - var reactIs_development_28 = reactIs_development.isSuspense; - - var reactIs = createCommonjsModule(function (module) { - - if (process.env.NODE_ENV === 'production') { - module.exports = reactIs_production_min; - } else { - module.exports = reactIs_development; - } - }); - var reactIs_1 = reactIs.typeOf; - var reactIs_2 = reactIs.AsyncMode; - var reactIs_3 = reactIs.ConcurrentMode; - var reactIs_4 = reactIs.ContextConsumer; - var reactIs_5 = reactIs.ContextProvider; - var reactIs_6 = reactIs.Element; - var reactIs_7 = reactIs.ForwardRef; - var reactIs_8 = reactIs.Fragment; - var reactIs_9 = reactIs.Lazy; - var reactIs_10 = reactIs.Memo; - var reactIs_11 = reactIs.Portal; - var reactIs_12 = reactIs.Profiler; - var reactIs_13 = reactIs.StrictMode; - var reactIs_14 = reactIs.Suspense; - var reactIs_15 = reactIs.isValidElementType; - var reactIs_16 = reactIs.isAsyncMode; - var reactIs_17 = reactIs.isConcurrentMode; - var reactIs_18 = reactIs.isContextConsumer; - var reactIs_19 = reactIs.isContextProvider; - var reactIs_20 = reactIs.isElement; - var reactIs_21 = reactIs.isForwardRef; - var reactIs_22 = reactIs.isFragment; - var reactIs_23 = reactIs.isLazy; - var reactIs_24 = reactIs.isMemo; - var reactIs_25 = reactIs.isPortal; - var reactIs_26 = reactIs.isProfiler; - var reactIs_27 = reactIs.isStrictMode; - var reactIs_28 = reactIs.isSuspense; - - /** - * Copyright 2015, Yahoo! Inc. - * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. - */ - var REACT_STATICS = { - childContextTypes: true, - contextType: true, - contextTypes: true, - defaultProps: true, - displayName: true, - getDefaultProps: true, - getDerivedStateFromError: true, - getDerivedStateFromProps: true, - mixins: true, - propTypes: true, - type: true - }; - var KNOWN_STATICS = { - name: true, - length: true, - prototype: true, - caller: true, - callee: true, - arguments: true, - arity: true - }; - var FORWARD_REF_STATICS = { - '$$typeof': true, - render: true, - defaultProps: true, - displayName: true, - propTypes: true - }; - var MEMO_STATICS = { - '$$typeof': true, - compare: true, - defaultProps: true, - displayName: true, - propTypes: true, - type: true - }; - var TYPE_STATICS = {}; - TYPE_STATICS[reactIs_7] = FORWARD_REF_STATICS; - TYPE_STATICS[reactIs_10] = MEMO_STATICS; - - function getStatics(component) { - // React v16.11 and below - if (reactIs_24(component)) { - return MEMO_STATICS; - } // React v16.12 and above - - - return TYPE_STATICS[component['$$typeof']] || REACT_STATICS; - } - - var defineProperty = Object.defineProperty; - var getOwnPropertyNames = Object.getOwnPropertyNames; - var getOwnPropertySymbols = Object.getOwnPropertySymbols; - var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; - var getPrototypeOf = Object.getPrototypeOf; - var objectPrototype = Object.prototype; - function hoistNonReactStatics(targetComponent, sourceComponent, blacklist) { - if (typeof sourceComponent !== 'string') { - // don't hoist over string (html) components - if (objectPrototype) { - var inheritedComponent = getPrototypeOf(sourceComponent); - - if (inheritedComponent && inheritedComponent !== objectPrototype) { - hoistNonReactStatics(targetComponent, inheritedComponent, blacklist); - } - } - - var keys = getOwnPropertyNames(sourceComponent); - - if (getOwnPropertySymbols) { - keys = keys.concat(getOwnPropertySymbols(sourceComponent)); - } - - var targetStatics = getStatics(targetComponent); - var sourceStatics = getStatics(sourceComponent); - - for (var i = 0; i < keys.length; ++i) { - var key = keys[i]; - - if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) { - var descriptor = getOwnPropertyDescriptor(sourceComponent, key); - - try { - // Avoid failures from read-only properties - defineProperty(targetComponent, key, descriptor); - } catch (e) {} - } - } - } - - return targetComponent; - } - - return hoistNonReactStatics; - -}))); diff --git a/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.min.js b/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.min.js deleted file mode 100644 index 2883e24..0000000 --- a/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).hoistNonReactStatics=t()}(this,(function(){"use strict";function e(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function t(e,t){return e(t={exports:{}},t.exports),t.exports}var r=t((function(e,t){Object.defineProperty(t,"__esModule",{value:!0});var r="function"==typeof Symbol&&Symbol.for,o=r?Symbol.for("react.element"):60103,n=r?Symbol.for("react.portal"):60106,c=r?Symbol.for("react.fragment"):60107,a=r?Symbol.for("react.strict_mode"):60108,f=r?Symbol.for("react.profiler"):60114,s=r?Symbol.for("react.provider"):60109,i=r?Symbol.for("react.context"):60110,u=r?Symbol.for("react.async_mode"):60111,y=r?Symbol.for("react.concurrent_mode"):60111,l=r?Symbol.for("react.forward_ref"):60112,p=r?Symbol.for("react.suspense"):60113,m=r?Symbol.for("react.suspense_list"):60120,d=r?Symbol.for("react.memo"):60115,b=r?Symbol.for("react.lazy"):60116,S=r?Symbol.for("react.fundamental"):60117,$=r?Symbol.for("react.responder"):60118,v=r?Symbol.for("react.scope"):60119;function g(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case o:switch(e=e.type){case u:case y:case c:case f:case a:case p:return e;default:switch(e=e&&e.$$typeof){case i:case l:case b:case d:case s:return e;default:return t}}case n:return t}}}function P(e){return g(e)===y}t.typeOf=g,t.AsyncMode=u,t.ConcurrentMode=y,t.ContextConsumer=i,t.ContextProvider=s,t.Element=o,t.ForwardRef=l,t.Fragment=c,t.Lazy=b,t.Memo=d,t.Portal=n,t.Profiler=f,t.StrictMode=a,t.Suspense=p,t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===c||e===y||e===f||e===a||e===p||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===b||e.$$typeof===d||e.$$typeof===s||e.$$typeof===i||e.$$typeof===l||e.$$typeof===S||e.$$typeof===$||e.$$typeof===v)},t.isAsyncMode=function(e){return P(e)||g(e)===u},t.isConcurrentMode=P,t.isContextConsumer=function(e){return g(e)===i},t.isContextProvider=function(e){return g(e)===s},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===o},t.isForwardRef=function(e){return g(e)===l},t.isFragment=function(e){return g(e)===c},t.isLazy=function(e){return g(e)===b},t.isMemo=function(e){return g(e)===d},t.isPortal=function(e){return g(e)===n},t.isProfiler=function(e){return g(e)===f},t.isStrictMode=function(e){return g(e)===a},t.isSuspense=function(e){return g(e)===p}}));e(r);var o=t((function(e,t){"production"!==process.env.NODE_ENV&&function(){Object.defineProperty(t,"__esModule",{value:!0});var e="function"==typeof Symbol&&Symbol.for,r=e?Symbol.for("react.element"):60103,o=e?Symbol.for("react.portal"):60106,n=e?Symbol.for("react.fragment"):60107,c=e?Symbol.for("react.strict_mode"):60108,a=e?Symbol.for("react.profiler"):60114,f=e?Symbol.for("react.provider"):60109,s=e?Symbol.for("react.context"):60110,i=e?Symbol.for("react.async_mode"):60111,u=e?Symbol.for("react.concurrent_mode"):60111,y=e?Symbol.for("react.forward_ref"):60112,l=e?Symbol.for("react.suspense"):60113,p=e?Symbol.for("react.suspense_list"):60120,m=e?Symbol.for("react.memo"):60115,d=e?Symbol.for("react.lazy"):60116,b=e?Symbol.for("react.fundamental"):60117,S=e?Symbol.for("react.responder"):60118,$=e?Symbol.for("react.scope"):60119;var v=function(e){for(var t=arguments.length,r=Array(t>1?t-1:0),o=1;t>o;o++)r[o-1]=arguments[o];var n=0,c="Warning: "+e.replace(/%s/g,(function(){return r[n++]}));void 0!==console&&console.warn(c);try{throw Error(c)}catch(e){}},g=function(e,t){if(void 0===t)throw Error("`lowPriorityWarningWithoutStack(condition, format, ...args)` requires a warning message argument");if(!e){for(var r=arguments.length,o=Array(r>2?r-2:0),n=2;r>n;n++)o[n-2]=arguments[n];v.apply(void 0,[t].concat(o))}};function P(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:var p=e.type;switch(p){case i:case u:case n:case a:case c:case l:return p;default:var b=p&&p.$$typeof;switch(b){case s:case y:case d:case m:case f:return b;default:return t}}case o:return t}}}var h=i,w=u,M=s,x=f,C=r,O=y,_=n,j=d,E=m,F=o,N=a,R=c,T=l,A=!1;function z(e){return P(e)===u}t.typeOf=P,t.AsyncMode=h,t.ConcurrentMode=w,t.ContextConsumer=M,t.ContextProvider=x,t.Element=C,t.ForwardRef=O,t.Fragment=_,t.Lazy=j,t.Memo=E,t.Portal=F,t.Profiler=N,t.StrictMode=R,t.Suspense=T,t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===n||e===u||e===a||e===c||e===l||e===p||"object"==typeof e&&null!==e&&(e.$$typeof===d||e.$$typeof===m||e.$$typeof===f||e.$$typeof===s||e.$$typeof===y||e.$$typeof===b||e.$$typeof===S||e.$$typeof===$)},t.isAsyncMode=function(e){return A||(A=!0,g(!1,"The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 17+. Update your code to use ReactIs.isConcurrentMode() instead. It has the exact same API.")),z(e)||P(e)===i},t.isConcurrentMode=z,t.isContextConsumer=function(e){return P(e)===s},t.isContextProvider=function(e){return P(e)===f},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return P(e)===y},t.isFragment=function(e){return P(e)===n},t.isLazy=function(e){return P(e)===d},t.isMemo=function(e){return P(e)===m},t.isPortal=function(e){return P(e)===o},t.isProfiler=function(e){return P(e)===a},t.isStrictMode=function(e){return P(e)===c},t.isSuspense=function(e){return P(e)===l}}()}));e(o);var n=t((function(e){e.exports="production"===process.env.NODE_ENV?r:o})),c=n.Memo,a=n.isMemo,f={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},s={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},u={};function y(e){return a(e)?i:u[e.$$typeof]||f}u[n.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},u[c]=i;var l=Object.defineProperty,p=Object.getOwnPropertyNames,m=Object.getOwnPropertySymbols,d=Object.getOwnPropertyDescriptor,b=Object.getPrototypeOf,S=Object.prototype;return function e(t,r,o){if("string"!=typeof r){if(S){var n=b(r);n&&n!==S&&e(t,n,o)}var c=p(r);m&&(c=c.concat(m(r)));for(var a=y(t),f=y(r),i=0;c.length>i;++i){var u=c[i];if(!(s[u]||o&&o[u]||f&&f[u]||a&&a[u])){var $=d(r,u);try{l(t,u,$)}catch(e){}}}}return t}})); diff --git a/node_modules/hoist-non-react-statics/package.json b/node_modules/hoist-non-react-statics/package.json deleted file mode 100644 index 0861e16..0000000 --- a/node_modules/hoist-non-react-statics/package.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "_from": "hoist-non-react-statics@^3.1.0", - "_id": "hoist-non-react-statics@3.3.2", - "_inBundle": false, - "_integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "_location": "/hoist-non-react-statics", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "hoist-non-react-statics@^3.1.0", - "name": "hoist-non-react-statics", - "escapedName": "hoist-non-react-statics", - "rawSpec": "^3.1.0", - "saveSpec": null, - "fetchSpec": "^3.1.0" - }, - "_requiredBy": [ - "/react-router" - ], - "_resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "_shasum": "ece0acaf71d62c2969c2ec59feff42a4b1a85b45", - "_spec": "hoist-non-react-statics@^3.1.0", - "_where": "G:\\_comp_\\odsc\\orig\\AllNotes\\node_modules\\react-router", - "author": { - "name": "Michael Ridgway", - "email": "mcridgway@gmail.com" - }, - "bugs": { - "url": "https://github.com/mridgway/hoist-non-react-statics/issues" - }, - "bundleDependencies": false, - "dependencies": { - "react-is": "^16.7.0" - }, - "deprecated": false, - "description": "Copies non-react specific statics from a child component to a parent component", - "devDependencies": { - "@babel/core": "^7.5.0", - "@babel/plugin-proposal-class-properties": "^7.5.0", - "@babel/preset-env": "^7.5.0", - "@babel/preset-react": "^7.0.0", - "@babel/register": "^7.4.4", - "chai": "^4.2.0", - "coveralls": "^2.11.1", - "create-react-class": "^15.5.3", - "eslint": "^4.13.1", - "mocha": "^6.1.4", - "nyc": "^14.1.1", - "pre-commit": "^1.0.7", - "prop-types": "^15.6.2", - "react": "^16.7.0", - "rimraf": "^2.6.2", - "rollup": "^1.16.6", - "rollup-plugin-babel": "^4.3.3", - "rollup-plugin-commonjs": "^10.0.1", - "rollup-plugin-node-resolve": "^5.2.0", - "rollup-plugin-terser": "^5.1.1" - }, - "files": [ - "src", - "dist", - "index.d.ts" - ], - "homepage": "https://github.com/mridgway/hoist-non-react-statics#readme", - "keywords": [ - "react" - ], - "license": "BSD-3-Clause", - "main": "dist/hoist-non-react-statics.cjs.js", - "name": "hoist-non-react-statics", - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "repository": { - "type": "git", - "url": "git://github.com/mridgway/hoist-non-react-statics.git" - }, - "scripts": { - "build": "rimraf dist && rollup -c", - "coverage": "nyc report --reporter=text-lcov | coveralls", - "lint": "eslint src", - "prepublish": "npm test", - "test": "nyc mocha tests/unit/ --recursive --reporter spec --require=@babel/register" - }, - "version": "3.3.2" -} diff --git a/node_modules/hoist-non-react-statics/src/index.js b/node_modules/hoist-non-react-statics/src/index.js deleted file mode 100644 index 40b764b..0000000 --- a/node_modules/hoist-non-react-statics/src/index.js +++ /dev/null @@ -1,104 +0,0 @@ -/** - * Copyright 2015, Yahoo! Inc. - * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. - */ -import { ForwardRef, Memo, isMemo } from 'react-is'; - -const REACT_STATICS = { - childContextTypes: true, - contextType: true, - contextTypes: true, - defaultProps: true, - displayName: true, - getDefaultProps: true, - getDerivedStateFromError: true, - getDerivedStateFromProps: true, - mixins: true, - propTypes: true, - type: true -}; - -const KNOWN_STATICS = { - name: true, - length: true, - prototype: true, - caller: true, - callee: true, - arguments: true, - arity: true -}; - -const FORWARD_REF_STATICS = { - '$$typeof': true, - render: true, - defaultProps: true, - displayName: true, - propTypes: true -}; - -const MEMO_STATICS = { - '$$typeof': true, - compare: true, - defaultProps: true, - displayName: true, - propTypes: true, - type: true, -} - -const TYPE_STATICS = {}; -TYPE_STATICS[ForwardRef] = FORWARD_REF_STATICS; -TYPE_STATICS[Memo] = MEMO_STATICS; - -function getStatics(component) { - // React v16.11 and below - if (isMemo(component)) { - return MEMO_STATICS; - } - - // React v16.12 and above - return TYPE_STATICS[component['$$typeof']] || REACT_STATICS; -} - -const defineProperty = Object.defineProperty; -const getOwnPropertyNames = Object.getOwnPropertyNames; -const getOwnPropertySymbols = Object.getOwnPropertySymbols; -const getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; -const getPrototypeOf = Object.getPrototypeOf; -const objectPrototype = Object.prototype; - -export default function hoistNonReactStatics(targetComponent, sourceComponent, blacklist) { - if (typeof sourceComponent !== 'string') { // don't hoist over string (html) components - - if (objectPrototype) { - const inheritedComponent = getPrototypeOf(sourceComponent); - if (inheritedComponent && inheritedComponent !== objectPrototype) { - hoistNonReactStatics(targetComponent, inheritedComponent, blacklist); - } - } - - let keys = getOwnPropertyNames(sourceComponent); - - if (getOwnPropertySymbols) { - keys = keys.concat(getOwnPropertySymbols(sourceComponent)); - } - - const targetStatics = getStatics(targetComponent); - const sourceStatics = getStatics(sourceComponent); - - for (let i = 0; i < keys.length; ++i) { - const key = keys[i]; - if (!KNOWN_STATICS[key] && - !(blacklist && blacklist[key]) && - !(sourceStatics && sourceStatics[key]) && - !(targetStatics && targetStatics[key]) - ) { - const descriptor = getOwnPropertyDescriptor(sourceComponent, key); - try { // Avoid failures from read-only properties - defineProperty(targetComponent, key, descriptor); - } catch (e) {} - } - } - } - - return targetComponent; -}; diff --git a/node_modules/isarray/README.md b/node_modules/isarray/README.md deleted file mode 100644 index 052a62b..0000000 --- a/node_modules/isarray/README.md +++ /dev/null @@ -1,54 +0,0 @@ - -# isarray - -`Array#isArray` for older browsers. - -## Usage - -```js -var isArray = require('isarray'); - -console.log(isArray([])); // => true -console.log(isArray({})); // => false -``` - -## Installation - -With [npm](http://npmjs.org) do - -```bash -$ npm install isarray -``` - -Then bundle for the browser with -[browserify](https://github.com/substack/browserify). - -With [component](http://component.io) do - -```bash -$ component install juliangruber/isarray -``` - -## License - -(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. diff --git a/node_modules/isarray/build/build.js b/node_modules/isarray/build/build.js deleted file mode 100644 index ec58596..0000000 --- a/node_modules/isarray/build/build.js +++ /dev/null @@ -1,209 +0,0 @@ - -/** - * Require the given path. - * - * @param {String} path - * @return {Object} exports - * @api public - */ - -function require(path, parent, orig) { - var resolved = require.resolve(path); - - // lookup failed - if (null == resolved) { - orig = orig || path; - parent = parent || 'root'; - var err = new Error('Failed to require "' + orig + '" from "' + parent + '"'); - err.path = orig; - err.parent = parent; - err.require = true; - throw err; - } - - var module = require.modules[resolved]; - - // perform real require() - // by invoking the module's - // registered function - if (!module.exports) { - module.exports = {}; - module.client = module.component = true; - module.call(this, module.exports, require.relative(resolved), module); - } - - return module.exports; -} - -/** - * Registered modules. - */ - -require.modules = {}; - -/** - * Registered aliases. - */ - -require.aliases = {}; - -/** - * Resolve `path`. - * - * Lookup: - * - * - PATH/index.js - * - PATH.js - * - PATH - * - * @param {String} path - * @return {String} path or null - * @api private - */ - -require.resolve = function(path) { - if (path.charAt(0) === '/') path = path.slice(1); - var index = path + '/index.js'; - - var paths = [ - path, - path + '.js', - path + '.json', - path + '/index.js', - path + '/index.json' - ]; - - for (var i = 0; i < paths.length; i++) { - var path = paths[i]; - if (require.modules.hasOwnProperty(path)) return path; - } - - if (require.aliases.hasOwnProperty(index)) { - return require.aliases[index]; - } -}; - -/** - * Normalize `path` relative to the current path. - * - * @param {String} curr - * @param {String} path - * @return {String} - * @api private - */ - -require.normalize = function(curr, path) { - var segs = []; - - if ('.' != path.charAt(0)) return path; - - curr = curr.split('/'); - path = path.split('/'); - - for (var i = 0; i < path.length; ++i) { - if ('..' == path[i]) { - curr.pop(); - } else if ('.' != path[i] && '' != path[i]) { - segs.push(path[i]); - } - } - - return curr.concat(segs).join('/'); -}; - -/** - * Register module at `path` with callback `definition`. - * - * @param {String} path - * @param {Function} definition - * @api private - */ - -require.register = function(path, definition) { - require.modules[path] = definition; -}; - -/** - * Alias a module definition. - * - * @param {String} from - * @param {String} to - * @api private - */ - -require.alias = function(from, to) { - if (!require.modules.hasOwnProperty(from)) { - throw new Error('Failed to alias "' + from + '", it does not exist'); - } - require.aliases[to] = from; -}; - -/** - * Return a require function relative to the `parent` path. - * - * @param {String} parent - * @return {Function} - * @api private - */ - -require.relative = function(parent) { - var p = require.normalize(parent, '..'); - - /** - * lastIndexOf helper. - */ - - function lastIndexOf(arr, obj) { - var i = arr.length; - while (i--) { - if (arr[i] === obj) return i; - } - return -1; - } - - /** - * The relative require() itself. - */ - - function localRequire(path) { - var resolved = localRequire.resolve(path); - return require(resolved, parent, path); - } - - /** - * Resolve relative to the parent. - */ - - localRequire.resolve = function(path) { - var c = path.charAt(0); - if ('/' == c) return path.slice(1); - if ('.' == c) return require.normalize(p, path); - - // resolve deps by returning - // the dep in the nearest "deps" - // directory - var segs = parent.split('/'); - var i = lastIndexOf(segs, 'deps') + 1; - if (!i) i = 0; - path = segs.slice(0, i + 1).join('/') + '/deps/' + path; - return path; - }; - - /** - * Check if module is defined at `path`. - */ - - localRequire.exists = function(path) { - return require.modules.hasOwnProperty(localRequire.resolve(path)); - }; - - return localRequire; -}; -require.register("isarray/index.js", function(exports, require, module){ -module.exports = Array.isArray || function (arr) { - return Object.prototype.toString.call(arr) == '[object Array]'; -}; - -}); -require.alias("isarray/index.js", "isarray/index.js"); - diff --git a/node_modules/isarray/component.json b/node_modules/isarray/component.json deleted file mode 100644 index 9e31b68..0000000 --- a/node_modules/isarray/component.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name" : "isarray", - "description" : "Array#isArray for older browsers", - "version" : "0.0.1", - "repository" : "juliangruber/isarray", - "homepage": "https://github.com/juliangruber/isarray", - "main" : "index.js", - "scripts" : [ - "index.js" - ], - "dependencies" : {}, - "keywords": ["browser","isarray","array"], - "author": { - "name": "Julian Gruber", - "email": "mail@juliangruber.com", - "url": "http://juliangruber.com" - }, - "license": "MIT" -} diff --git a/node_modules/isarray/index.js b/node_modules/isarray/index.js deleted file mode 100644 index 5f5ad45..0000000 --- a/node_modules/isarray/index.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = Array.isArray || function (arr) { - return Object.prototype.toString.call(arr) == '[object Array]'; -}; diff --git a/node_modules/isarray/package.json b/node_modules/isarray/package.json deleted file mode 100644 index f053d28..0000000 --- a/node_modules/isarray/package.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "_from": "isarray@0.0.1", - "_id": "isarray@0.0.1", - "_inBundle": false, - "_integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "_location": "/isarray", - "_phantomChildren": {}, - "_requested": { - "type": "version", - "registry": true, - "raw": "isarray@0.0.1", - "name": "isarray", - "escapedName": "isarray", - "rawSpec": "0.0.1", - "saveSpec": null, - "fetchSpec": "0.0.1" - }, - "_requiredBy": [ - "/path-to-regexp" - ], - "_resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "_shasum": "8a18acfca9a8f4177e09abfc6038939b05d1eedf", - "_spec": "isarray@0.0.1", - "_where": "G:\\_comp_\\odsc\\orig\\AllNotes\\node_modules\\path-to-regexp", - "author": { - "name": "Julian Gruber", - "email": "mail@juliangruber.com", - "url": "http://juliangruber.com" - }, - "bugs": { - "url": "https://github.com/juliangruber/isarray/issues" - }, - "bundleDependencies": false, - "dependencies": {}, - "deprecated": false, - "description": "Array#isArray for older browsers", - "devDependencies": { - "tap": "*" - }, - "homepage": "https://github.com/juliangruber/isarray", - "keywords": [ - "browser", - "isarray", - "array" - ], - "license": "MIT", - "main": "index.js", - "name": "isarray", - "repository": { - "type": "git", - "url": "git://github.com/juliangruber/isarray.git" - }, - "scripts": { - "test": "tap test/*.js" - }, - "version": "0.0.1" -} diff --git a/node_modules/js-tokens/CHANGELOG.md b/node_modules/js-tokens/CHANGELOG.md deleted file mode 100644 index 755e6f6..0000000 --- a/node_modules/js-tokens/CHANGELOG.md +++ /dev/null @@ -1,151 +0,0 @@ -### Version 4.0.0 (2018-01-28) ### - -- Added: Support for ES2018. The only change needed was recognizing the `s` - regex flag. -- Changed: _All_ tokens returned by the `matchToToken` function now have a - `closed` property. It is set to `undefined` for the tokens where “closed” - doesn’t make sense. This means that all tokens objects have the same shape, - which might improve performance. - -These are the breaking changes: - -- `'/a/s'.match(jsTokens)` no longer returns `['/', 'a', '/', 's']`, but - `['/a/s']`. (There are of course other variations of this.) -- Code that rely on some token objects not having the `closed` property could - now behave differently. - - -### Version 3.0.2 (2017-06-28) ### - -- No code changes. Just updates to the readme. - - -### Version 3.0.1 (2017-01-30) ### - -- Fixed: ES2015 unicode escapes with more than 6 hex digits are now matched - correctly. - - -### Version 3.0.0 (2017-01-11) ### - -This release contains one breaking change, that should [improve performance in -V8][v8-perf]: - -> So how can you, as a JavaScript developer, ensure that your RegExps are fast? -> If you are not interested in hooking into RegExp internals, make sure that -> neither the RegExp instance, nor its prototype is modified in order to get the -> best performance: -> -> ```js -> var re = /./g; -> re.exec(''); // Fast path. -> re.new_property = 'slow'; -> ``` - -This module used to export a single regex, with `.matchToToken` bolted -on, just like in the above example. This release changes the exports of -the module to avoid this issue. - -Before: - -```js -import jsTokens from "js-tokens" -// or: -var jsTokens = require("js-tokens") -var matchToToken = jsTokens.matchToToken -``` - -After: - -```js -import jsTokens, {matchToToken} from "js-tokens" -// or: -var jsTokens = require("js-tokens").default -var matchToToken = require("js-tokens").matchToToken -``` - -[v8-perf]: http://v8project.blogspot.se/2017/01/speeding-up-v8-regular-expressions.html - - -### Version 2.0.0 (2016-06-19) ### - -- Added: Support for ES2016. In other words, support for the `**` exponentiation - operator. - -These are the breaking changes: - -- `'**'.match(jsTokens)` no longer returns `['*', '*']`, but `['**']`. -- `'**='.match(jsTokens)` no longer returns `['*', '*=']`, but `['**=']`. - - -### Version 1.0.3 (2016-03-27) ### - -- Improved: Made the regex ever so slightly smaller. -- Updated: The readme. - - -### Version 1.0.2 (2015-10-18) ### - -- Improved: Limited npm package contents for a smaller download. Thanks to - @zertosh! - - -### Version 1.0.1 (2015-06-20) ### - -- Fixed: Declared an undeclared variable. - - -### Version 1.0.0 (2015-02-26) ### - -- Changed: Merged the 'operator' and 'punctuation' types into 'punctuator'. That - type is now equivalent to the Punctuator token in the ECMAScript - specification. (Backwards-incompatible change.) -- Fixed: A `-` followed by a number is now correctly matched as a punctuator - followed by a number. It used to be matched as just a number, but there is no - such thing as negative number literals. (Possibly backwards-incompatible - change.) - - -### Version 0.4.1 (2015-02-21) ### - -- Added: Support for the regex `u` flag. - - -### Version 0.4.0 (2015-02-21) ### - -- Improved: `jsTokens.matchToToken` performance. -- Added: Support for octal and binary number literals. -- Added: Support for template strings. - - -### Version 0.3.1 (2015-01-06) ### - -- Fixed: Support for unicode spaces. They used to be allowed in names (which is - very confusing), and some unicode newlines were wrongly allowed in strings and - regexes. - - -### Version 0.3.0 (2014-12-19) ### - -- Changed: The `jsTokens.names` array has been replaced with the - `jsTokens.matchToToken` function. The capturing groups of `jsTokens` are no - longer part of the public API; instead use said function. See this [gist] for - an example. (Backwards-incompatible change.) -- Changed: The empty string is now considered an “invalid” token, instead an - “empty” token (its own group). (Backwards-incompatible change.) -- Removed: component support. (Backwards-incompatible change.) - -[gist]: https://gist.github.com/lydell/be49dbf80c382c473004 - - -### Version 0.2.0 (2014-06-19) ### - -- Changed: Match ES6 function arrows (`=>`) as an operator, instead of its own - category (“functionArrow”), for simplicity. (Backwards-incompatible change.) -- Added: ES6 splats (`...`) are now matched as an operator (instead of three - punctuations). (Backwards-incompatible change.) - - -### Version 0.1.0 (2014-03-08) ### - -- Initial release. diff --git a/node_modules/js-tokens/LICENSE b/node_modules/js-tokens/LICENSE deleted file mode 100644 index 54aef52..0000000 --- a/node_modules/js-tokens/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -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. diff --git a/node_modules/js-tokens/README.md b/node_modules/js-tokens/README.md deleted file mode 100644 index 00cdf16..0000000 --- a/node_modules/js-tokens/README.md +++ /dev/null @@ -1,240 +0,0 @@ -Overview [![Build Status](https://travis-ci.org/lydell/js-tokens.svg?branch=master)](https://travis-ci.org/lydell/js-tokens) -======== - -A regex that tokenizes JavaScript. - -```js -var jsTokens = require("js-tokens").default - -var jsString = "var foo=opts.foo;\n..." - -jsString.match(jsTokens) -// ["var", " ", "foo", "=", "opts", ".", "foo", ";", "\n", ...] -``` - - -Installation -============ - -`npm install js-tokens` - -```js -import jsTokens from "js-tokens" -// or: -var jsTokens = require("js-tokens").default -``` - - -Usage -===== - -### `jsTokens` ### - -A regex with the `g` flag that matches JavaScript tokens. - -The regex _always_ matches, even invalid JavaScript and the empty string. - -The next match is always directly after the previous. - -### `var token = matchToToken(match)` ### - -```js -import {matchToToken} from "js-tokens" -// or: -var matchToToken = require("js-tokens").matchToToken -``` - -Takes a `match` returned by `jsTokens.exec(string)`, and returns a `{type: -String, value: String}` object. The following types are available: - -- string -- comment -- regex -- number -- name -- punctuator -- whitespace -- invalid - -Multi-line comments and strings also have a `closed` property indicating if the -token was closed or not (see below). - -Comments and strings both come in several flavors. To distinguish them, check if -the token starts with `//`, `/*`, `'`, `"` or `` ` ``. - -Names are ECMAScript IdentifierNames, that is, including both identifiers and -keywords. You may use [is-keyword-js] to tell them apart. - -Whitespace includes both line terminators and other whitespace. - -[is-keyword-js]: https://github.com/crissdev/is-keyword-js - - -ECMAScript support -================== - -The intention is to always support the latest ECMAScript version whose feature -set has been finalized. - -If adding support for a newer version requires changes, a new version with a -major verion bump will be released. - -Currently, ECMAScript 2018 is supported. - - -Invalid code handling -===================== - -Unterminated strings are still matched as strings. JavaScript strings cannot -contain (unescaped) newlines, so unterminated strings simply end at the end of -the line. Unterminated template strings can contain unescaped newlines, though, -so they go on to the end of input. - -Unterminated multi-line comments are also still matched as comments. They -simply go on to the end of the input. - -Unterminated regex literals are likely matched as division and whatever is -inside the regex. - -Invalid ASCII characters have their own capturing group. - -Invalid non-ASCII characters are treated as names, to simplify the matching of -names (except unicode spaces which are treated as whitespace). Note: See also -the [ES2018](#es2018) section. - -Regex literals may contain invalid regex syntax. They are still matched as -regex literals. They may also contain repeated regex flags, to keep the regex -simple. - -Strings may contain invalid escape sequences. - - -Limitations -=========== - -Tokenizing JavaScript using regexes—in fact, _one single regex_—won’t be -perfect. But that’s not the point either. - -You may compare jsTokens with [esprima] by using `esprima-compare.js`. -See `npm run esprima-compare`! - -[esprima]: http://esprima.org/ - -### Template string interpolation ### - -Template strings are matched as single tokens, from the starting `` ` `` to the -ending `` ` ``, including interpolations (whose tokens are not matched -individually). - -Matching template string interpolations requires recursive balancing of `{` and -`}`—something that JavaScript regexes cannot do. Only one level of nesting is -supported. - -### Division and regex literals collision ### - -Consider this example: - -```js -var g = 9.82 -var number = bar / 2/g - -var regex = / 2/g -``` - -A human can easily understand that in the `number` line we’re dealing with -division, and in the `regex` line we’re dealing with a regex literal. How come? -Because humans can look at the whole code to put the `/` characters in context. -A JavaScript regex cannot. It only sees forwards. (Well, ES2018 regexes can also -look backwards. See the [ES2018](#es2018) section). - -When the `jsTokens` regex scans throught the above, it will see the following -at the end of both the `number` and `regex` rows: - -```js -/ 2/g -``` - -It is then impossible to know if that is a regex literal, or part of an -expression dealing with division. - -Here is a similar case: - -```js -foo /= 2/g -foo(/= 2/g) -``` - -The first line divides the `foo` variable with `2/g`. The second line calls the -`foo` function with the regex literal `/= 2/g`. Again, since `jsTokens` only -sees forwards, it cannot tell the two cases apart. - -There are some cases where we _can_ tell division and regex literals apart, -though. - -First off, we have the simple cases where there’s only one slash in the line: - -```js -var foo = 2/g -foo /= 2 -``` - -Regex literals cannot contain newlines, so the above cases are correctly -identified as division. Things are only problematic when there are more than -one non-comment slash in a single line. - -Secondly, not every character is a valid regex flag. - -```js -var number = bar / 2/e -``` - -The above example is also correctly identified as division, because `e` is not a -valid regex flag. I initially wanted to future-proof by allowing `[a-zA-Z]*` -(any letter) as flags, but it is not worth it since it increases the amount of -ambigous cases. So only the standard `g`, `m`, `i`, `y` and `u` flags are -allowed. This means that the above example will be identified as division as -long as you don’t rename the `e` variable to some permutation of `gmiyus` 1 to 6 -characters long. - -Lastly, we can look _forward_ for information. - -- If the token following what looks like a regex literal is not valid after a - regex literal, but is valid in a division expression, then the regex literal - is treated as division instead. For example, a flagless regex cannot be - followed by a string, number or name, but all of those three can be the - denominator of a division. -- Generally, if what looks like a regex literal is followed by an operator, the - regex literal is treated as division instead. This is because regexes are - seldomly used with operators (such as `+`, `*`, `&&` and `==`), but division - could likely be part of such an expression. - -Please consult the regex source and the test cases for precise information on -when regex or division is matched (should you need to know). In short, you -could sum it up as: - -If the end of a statement looks like a regex literal (even if it isn’t), it -will be treated as one. Otherwise it should work as expected (if you write sane -code). - -### ES2018 ### - -ES2018 added some nice regex improvements to the language. - -- [Unicode property escapes] should allow telling names and invalid non-ASCII - characters apart without blowing up the regex size. -- [Lookbehind assertions] should allow matching telling division and regex - literals apart in more cases. -- [Named capture groups] might simplify some things. - -These things would be nice to do, but are not critical. They probably have to -wait until the oldest maintained Node.js LTS release supports those features. - -[Unicode property escapes]: http://2ality.com/2017/07/regexp-unicode-property-escapes.html -[Lookbehind assertions]: http://2ality.com/2017/05/regexp-lookbehind-assertions.html -[Named capture groups]: http://2ality.com/2017/05/regexp-named-capture-groups.html - - -License -======= - -[MIT](LICENSE). diff --git a/node_modules/js-tokens/index.js b/node_modules/js-tokens/index.js deleted file mode 100644 index b23a4a0..0000000 --- a/node_modules/js-tokens/index.js +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright 2014, 2015, 2016, 2017, 2018 Simon Lydell -// License: MIT. (See LICENSE.) - -Object.defineProperty(exports, "__esModule", { - value: true -}) - -// This regex comes from regex.coffee, and is inserted here by generate-index.js -// (run `npm run build`). -exports.default = /((['"])(?:(?!\2|\\).|\\(?:\r\n|[\s\S]))*(\2)?|`(?:[^`\\$]|\\[\s\S]|\$(?!\{)|\$\{(?:[^{}]|\{[^}]*\}?)*\}?)*(`)?)|(\/\/.*)|(\/\*(?:[^*]|\*(?!\/))*(\*\/)?)|(\/(?!\*)(?:\[(?:(?![\]\\]).|\\.)*\]|(?![\/\]\\]).|\\.)+\/(?:(?!\s*(?:\b|[\u0080-\uFFFF$\\'"~({]|[+\-!](?!=)|\.?\d))|[gmiyus]{1,6}\b(?![\u0080-\uFFFF$\\]|\s*(?:[+\-*%&|^<>!=?({]|\/(?![\/*])))))|(0[xX][\da-fA-F]+|0[oO][0-7]+|0[bB][01]+|(?:\d*\.\d+|\d+\.?)(?:[eE][+-]?\d+)?)|((?!\d)(?:(?!\s)[$\w\u0080-\uFFFF]|\\u[\da-fA-F]{4}|\\u\{[\da-fA-F]+\})+)|(--|\+\+|&&|\|\||=>|\.{3}|(?:[+\-\/%&|^]|\*{1,2}|<{1,2}|>{1,3}|!=?|={1,2})=?|[?~.,:;[\](){}])|(\s+)|(^$|[\s\S])/g - -exports.matchToToken = function(match) { - var token = {type: "invalid", value: match[0], closed: undefined} - if (match[ 1]) token.type = "string" , token.closed = !!(match[3] || match[4]) - else if (match[ 5]) token.type = "comment" - else if (match[ 6]) token.type = "comment", token.closed = !!match[7] - else if (match[ 8]) token.type = "regex" - else if (match[ 9]) token.type = "number" - else if (match[10]) token.type = "name" - else if (match[11]) token.type = "punctuator" - else if (match[12]) token.type = "whitespace" - return token -} diff --git a/node_modules/js-tokens/package.json b/node_modules/js-tokens/package.json deleted file mode 100644 index ccdd38b..0000000 --- a/node_modules/js-tokens/package.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "_from": "js-tokens@^3.0.0 || ^4.0.0", - "_id": "js-tokens@4.0.0", - "_inBundle": false, - "_integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "_location": "/js-tokens", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "js-tokens@^3.0.0 || ^4.0.0", - "name": "js-tokens", - "escapedName": "js-tokens", - "rawSpec": "^3.0.0 || ^4.0.0", - "saveSpec": null, - "fetchSpec": "^3.0.0 || ^4.0.0" - }, - "_requiredBy": [ - "/loose-envify" - ], - "_resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "_shasum": "19203fb59991df98e3a287050d4647cdeaf32499", - "_spec": "js-tokens@^3.0.0 || ^4.0.0", - "_where": "G:\\_comp_\\odsc\\orig\\AllNotes\\node_modules\\loose-envify", - "author": { - "name": "Simon Lydell" - }, - "bugs": { - "url": "https://github.com/lydell/js-tokens/issues" - }, - "bundleDependencies": false, - "deprecated": false, - "description": "A regex that tokenizes JavaScript.", - "devDependencies": { - "coffeescript": "2.1.1", - "esprima": "4.0.0", - "everything.js": "1.0.3", - "mocha": "5.0.0" - }, - "files": [ - "index.js" - ], - "homepage": "https://github.com/lydell/js-tokens#readme", - "keywords": [ - "JavaScript", - "js", - "token", - "tokenize", - "regex" - ], - "license": "MIT", - "name": "js-tokens", - "repository": { - "type": "git", - "url": "git+https://github.com/lydell/js-tokens.git" - }, - "scripts": { - "build": "node generate-index.js", - "dev": "npm run build && npm test", - "esprima-compare": "node esprima-compare ./index.js everything.js/es5.js", - "test": "mocha --ui tdd" - }, - "version": "4.0.0" -} diff --git a/node_modules/loose-envify/LICENSE b/node_modules/loose-envify/LICENSE deleted file mode 100644 index fbafb48..0000000 --- a/node_modules/loose-envify/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -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. diff --git a/node_modules/loose-envify/README.md b/node_modules/loose-envify/README.md deleted file mode 100644 index 7f4e07b..0000000 --- a/node_modules/loose-envify/README.md +++ /dev/null @@ -1,45 +0,0 @@ -# loose-envify - -[![Build Status](https://travis-ci.org/zertosh/loose-envify.svg?branch=master)](https://travis-ci.org/zertosh/loose-envify) - -Fast (and loose) selective `process.env` replacer using [js-tokens](https://github.com/lydell/js-tokens) instead of an AST. Works just like [envify](https://github.com/hughsk/envify) but much faster. - -## Gotchas - -* Doesn't handle broken syntax. -* Doesn't look inside embedded expressions in template strings. - - **this won't work:** - ```js - console.log(`the current env is ${process.env.NODE_ENV}`); - ``` -* Doesn't replace oddly-spaced or oddly-commented expressions. - - **this won't work:** - ```js - console.log(process./*won't*/env./*work*/NODE_ENV); - ``` - -## Usage/Options - -loose-envify has the exact same interface as [envify](https://github.com/hughsk/envify), including the CLI. - -## Benchmark - -``` -envify: - - $ for i in {1..5}; do node bench/bench.js 'envify'; done - 708ms - 727ms - 791ms - 719ms - 720ms - -loose-envify: - - $ for i in {1..5}; do node bench/bench.js '../'; done - 51ms - 52ms - 52ms - 52ms - 52ms -``` diff --git a/node_modules/loose-envify/cli.js b/node_modules/loose-envify/cli.js deleted file mode 100644 index c0b63cb..0000000 --- a/node_modules/loose-envify/cli.js +++ /dev/null @@ -1,16 +0,0 @@ -#!/usr/bin/env node -'use strict'; - -var looseEnvify = require('./'); -var fs = require('fs'); - -if (process.argv[2]) { - fs.createReadStream(process.argv[2], {encoding: 'utf8'}) - .pipe(looseEnvify(process.argv[2])) - .pipe(process.stdout); -} else { - process.stdin.resume() - process.stdin - .pipe(looseEnvify(__filename)) - .pipe(process.stdout); -} diff --git a/node_modules/loose-envify/custom.js b/node_modules/loose-envify/custom.js deleted file mode 100644 index 6389bfa..0000000 --- a/node_modules/loose-envify/custom.js +++ /dev/null @@ -1,4 +0,0 @@ -// envify compatibility -'use strict'; - -module.exports = require('./loose-envify'); diff --git a/node_modules/loose-envify/index.js b/node_modules/loose-envify/index.js deleted file mode 100644 index 8cd8305..0000000 --- a/node_modules/loose-envify/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./loose-envify')(process.env); diff --git a/node_modules/loose-envify/loose-envify.js b/node_modules/loose-envify/loose-envify.js deleted file mode 100644 index b5a5be2..0000000 --- a/node_modules/loose-envify/loose-envify.js +++ /dev/null @@ -1,36 +0,0 @@ -'use strict'; - -var stream = require('stream'); -var util = require('util'); -var replace = require('./replace'); - -var jsonExtRe = /\.json$/; - -module.exports = function(rootEnv) { - rootEnv = rootEnv || process.env; - return function (file, trOpts) { - if (jsonExtRe.test(file)) { - return stream.PassThrough(); - } - var envs = trOpts ? [rootEnv, trOpts] : [rootEnv]; - return new LooseEnvify(envs); - }; -}; - -function LooseEnvify(envs) { - stream.Transform.call(this); - this._data = ''; - this._envs = envs; -} -util.inherits(LooseEnvify, stream.Transform); - -LooseEnvify.prototype._transform = function(buf, enc, cb) { - this._data += buf; - cb(); -}; - -LooseEnvify.prototype._flush = function(cb) { - var replaced = replace(this._data, this._envs); - this.push(replaced); - cb(); -}; diff --git a/node_modules/loose-envify/package.json b/node_modules/loose-envify/package.json deleted file mode 100644 index d13706e..0000000 --- a/node_modules/loose-envify/package.json +++ /dev/null @@ -1,70 +0,0 @@ -{ - "_from": "loose-envify@^1.3.1", - "_id": "loose-envify@1.4.0", - "_inBundle": false, - "_integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "_location": "/loose-envify", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "loose-envify@^1.3.1", - "name": "loose-envify", - "escapedName": "loose-envify", - "rawSpec": "^1.3.1", - "saveSpec": null, - "fetchSpec": "^1.3.1" - }, - "_requiredBy": [ - "/history", - "/prop-types", - "/react-router", - "/react-router-dom" - ], - "_resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "_shasum": "71ee51fa7be4caec1a63839f7e682d8132d30caf", - "_spec": "loose-envify@^1.3.1", - "_where": "G:\\_comp_\\odsc\\orig\\AllNotes\\node_modules\\react-router-dom", - "author": { - "name": "Andres Suarez", - "email": "zertosh@gmail.com" - }, - "bin": { - "loose-envify": "cli.js" - }, - "bugs": { - "url": "https://github.com/zertosh/loose-envify/issues" - }, - "bundleDependencies": false, - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "deprecated": false, - "description": "Fast (and loose) selective `process.env` replacer using js-tokens instead of an AST", - "devDependencies": { - "browserify": "^13.1.1", - "envify": "^3.4.0", - "tap": "^8.0.0" - }, - "homepage": "https://github.com/zertosh/loose-envify", - "keywords": [ - "environment", - "variables", - "browserify", - "browserify-transform", - "transform", - "source", - "configuration" - ], - "license": "MIT", - "main": "index.js", - "name": "loose-envify", - "repository": { - "type": "git", - "url": "git://github.com/zertosh/loose-envify.git" - }, - "scripts": { - "test": "tap test/*.js" - }, - "version": "1.4.0" -} diff --git a/node_modules/loose-envify/replace.js b/node_modules/loose-envify/replace.js deleted file mode 100644 index ec15e81..0000000 --- a/node_modules/loose-envify/replace.js +++ /dev/null @@ -1,65 +0,0 @@ -'use strict'; - -var jsTokens = require('js-tokens').default; - -var processEnvRe = /\bprocess\.env\.[_$a-zA-Z][$\w]+\b/; -var spaceOrCommentRe = /^(?:\s|\/[/*])/; - -function replace(src, envs) { - if (!processEnvRe.test(src)) { - return src; - } - - var out = []; - var purge = envs.some(function(env) { - return env._ && env._.indexOf('purge') !== -1; - }); - - jsTokens.lastIndex = 0 - var parts = src.match(jsTokens); - - for (var i = 0; i < parts.length; i++) { - if (parts[i ] === 'process' && - parts[i + 1] === '.' && - parts[i + 2] === 'env' && - parts[i + 3] === '.') { - var prevCodeToken = getAdjacentCodeToken(-1, parts, i); - var nextCodeToken = getAdjacentCodeToken(1, parts, i + 4); - var replacement = getReplacementString(envs, parts[i + 4], purge); - if (prevCodeToken !== '.' && - nextCodeToken !== '.' && - nextCodeToken !== '=' && - typeof replacement === 'string') { - out.push(replacement); - i += 4; - continue; - } - } - out.push(parts[i]); - } - - return out.join(''); -} - -function getAdjacentCodeToken(dir, parts, i) { - while (true) { - var part = parts[i += dir]; - if (!spaceOrCommentRe.test(part)) { - return part; - } - } -} - -function getReplacementString(envs, name, purge) { - for (var j = 0; j < envs.length; j++) { - var env = envs[j]; - if (typeof env[name] !== 'undefined') { - return JSON.stringify(env[name]); - } - } - if (purge) { - return 'undefined'; - } -} - -module.exports = replace; diff --git a/node_modules/mini-create-react-context/LICENSE b/node_modules/mini-create-react-context/LICENSE deleted file mode 100644 index 4cfe190..0000000 --- a/node_modules/mini-create-react-context/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -Copyright (c) 2019-present StringEpsilon - -Copyright (c) 2017-2019 James Kyle - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/node_modules/mini-create-react-context/README.md b/node_modules/mini-create-react-context/README.md deleted file mode 100644 index 2b4c2a2..0000000 --- a/node_modules/mini-create-react-context/README.md +++ /dev/null @@ -1,124 +0,0 @@ -# mini-create-react-context - -

fi5!xc;)pAr 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 z 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